Mostrar caracteres invisíveis no vim

6

Quando eu compilo minha fonte com Latex, recebo a seguinte mensagem de erro

Unicode char \u8:  not set up for use with LaTeX.

Agora, suspeito que isso se deva a um personagem invisível. O comando :set list não mostra nada suspeito e :set display+=uhex parece não funcionar para mim. Este post me permite supor que eu também tenho algo suspeito acontecendo.

Existe uma maneira no vim de mostrar tudo que está no meu arquivo que não é um caractere imprimível? Estou usando o MacVim Versão 7.3 (53).

    
por Lucas 23.02.2011 / 09:39

3 respostas

4

você poderia:

:setlocal display=uhex

para exibir caracteres não-ascii pelo seu número hexadecimal. e você também pode tentar highlite caracteres não imprimíveis por:

:set hlsearch
/\(\p\|$\)\@!.

, em seguida, há a opção isprint que controla quais caracteres são "imprimíveis".

se isso não ajudar, você pode querer :%!xxd e verificar byte por byte se houver algo 'suspeito' no local em que você encontrar o problema.

    
por 23.02.2011 / 10:38
1

Uma alternativa ao uso do vim é executar

tr -d '[a-zA-Z0-9!#@_?+ \t\n\()"^~'%-]'\'{} < your_latex_file.tex | hexdump -c

Isso deve fornecer informações sobre quais caracteres não estão dentro da faixa normal de caracteres imprimíveis.

    
por 24.02.2011 / 00:39
0

O Vim geralmente mostra algo para cada caractere no arquivo, exceto espaços, tabulações e sequências ou caracteres de fim de linha. Eu não acho que isso seja um problema de caráter oculto; Eu acho que isso é um problema de codificação de arquivos. Eu acho que o Vim está usando o UTF-8 para codificar alguns caracteres em seu arquivo e o LaTeX está esperando ASCII ou Latin1. (Eu uso ASCII quase exclusivamente, então eu certamente não sou especialista em outras codificações).

Para verificar a codificação que o Vim está usando, execute

:set enc?

Acho que isso retornará "utf-8". Uma solução pode ser salvar o arquivo com a codificação Latin1. Para fazer isso, execute

:set fenc=latin1
:w

Se, em vez disso, você quiser procurar por caracteres não-ASCII no arquivo e alterá-los quando necessário, procure caracteres no intervalo de 0x80 a 0xff usando

/[\x80-\xff]

Para saber mais sobre o uso de diferentes codificações pelo Vim, veja

:help enc
:help fenc
:help 45.3
    
por 23.02.2011 / 17:05

Tags