Vim: mostrar feeds de linha e retorno de carro

34

Como exibir feeds de linha e / ou caracteres de retorno de carro no vi / vim?

Eu sei que set listmostra todos os caracteres de espaço em branco (?), Ele também substitui as guias \ t etc (mas não é isso que eu quero). Basicamente, eu só quero exibir certos caracteres como \ r (no Debian isso parece ser o padrão, no entanto, no Gentoo é diferente).

Atenciosamente

watain
fonte

Respostas:

16

Nas versões recentes do Vim, há uma configuração de 'listchars' que permite especificar quais caracteres devem ser usados ​​para os caracteres EOL e TAB e para espaços à direita.

Você poderia:

set listchars=eol:$,tab:\[SPACE]\[SPACE]

... para exibir caracteres EOL especialmente sem entrar em colapso abas (digitar um caractere de espaço, não [, S, P, A, ...).

Não sei nada específico sobre caracteres de retorno na configuração 'listchars', mas suspeito que você possa usar o destaque de sintaxe para isso. Eu acho que a exibição padrão de caracteres é mostrá-los com o destaque da SpecialKey.

Portanto, o destaque SpecialKey padrão de caracteres \ r, combinado com a configuração de 'listchars' como acima, deve estar próximo do que você precisa.

:highlight SpecialKey ctermfg=5

... se você gosta de magenta.

njd
fonte
Obrigado, listcharsjá ajudou. Importa-se de me explicar como usar SpecialKey? Não consigo encontrar nenhuma informação útil, vimdoc.sourceforge.net/htmldoc/syntax.html#hl-SpecialKey também não ajudou muito.
Watain
SpecialKey é o rótulo interno de realce de sintaxe para qualquer caractere exibido "especialmente": caracteres de controle e similares. Se você digitar ": destaque SpecialKey", isso mostrará como esses caracteres serão exibidos.
NJD
Quando eu tento o set listcharsque eu recebo o seguinte erro: E474: Invalid argument: listchars=eol:$,tab:\[SPACE]\[SPACE]. Estou usando o MacVim 8.0.596 (133)
Eliot
22

reabra o DOSarquivo de texto UNIXformatado no formart:

:e ++ff=unix

você verá ^M(\ r) no final da linha.
se você deseja exibir ^Mem hexadecimal:

:set dy=uhex
kev
fonte
5

Adicione a seguinte linha ao seu .vimrcarquivo:

set fileformats=unix

Isso faz com que o vim suporte apenas arquivos no estilo unix nativamente. Para terminações de linhas não estilo Unix, o caractere de retorno de carro \rserá exibido explicitamente no vim como ^M.

Mansoor Siddiqui
fonte
Infelizmente, ele também não mostra o caractere de avanço de linha.
jpaugh