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