De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Substituição de Caracteres Não-Imprimíveis com Vim

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 07 de maio de 2010

Para criar os documentos da Dicas-L, às vezes eu tenho que copiar arquivos que são criados em outros editores de textos. Ao copiar e colar o texto no editor vim, caracteres como abre aspas e fecha aspas, são representados por algo como "~S" e "~T". Embora a representação destes caracteres seja feita com dois caracteres, na verdade trata-se de apenas um.

Para substituir estes caracteres pelo que desejamos, precisamos primeiramente identificar o código binário destes caracteres. Fazemos isto posicionando o cursor sobre o caracter desejado e em seguida digitamos ga.

Como exemplo, ao posicionarmos o cursor sobre o caractere "c", e digitarmos ga, temos, no rodapé do vim, a seguinte informação:

  99,  Hex 63,  Octal 143

Primeiramente, temos o caractere, c, em seguida a representação decimal (99), a representação hexadecimal (63) e por fim a representação octal (143)

Podemos fazer isto com qualquer caractere do texto. Para substituir este caractere por outro, executamos o seguinte comando:

%s/\%x63/A/g

O comando acima irá substituir todos os caracteres "c" pelo caractere "A".

Isto pode ser feito para qualquer caractere, até os não imprimíveis. Note que no exemplo eu utilizei o formato hexadecimal, indicado pela letra "x" antes do código do caractere. Eu poderia ter usado o formato decimal:

%s/\%d99/A/g

ou octal:

%s/\%o143/A/g

Referência: Find & Replace non-printable characters in vim

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida