Mostrando alguns caracteres em branco, mas não todos, em vim?

3

Estou usando as opções set list e set listchars no vim. Gostaria de personalizar set listchars para exibir espaços à direita, etc., mas não guias. É possível especificar que não quero que um tipo específico de espaço em branco seja exibido?

Eu tentei isso:

set listchars=tab:,trail:·,extends:>,precedes:<,nbsp:%

Mas recebi um erro de sintaxe ao carregar meu .vimrc .

    
por Andrew Ferrier 04.07.2013 / 17:30

2 respostas

3

Acabei de descobrir que, embora isso não seja tecnicamente possível, é possível trapacear e inserir caracteres especiais de espaço em branco Unicode (não o caractere de espaço regular) como o caractere a ser exibido em uma guia. Embora isso ainda use a cor de realce hl-NonText do vim, é certamente menos invasivo.

Em outras palavras, faça isso (ou similar):

set listchars=tab:  ,trail:·,extends:>,precedes:<,nbsp:%

Os dois caracteres após tab: são não caracteres de espaço regulares - eles são U + 2002 . Você pode inseri-los no próprio vim com Ctrl-V u 2 0 0 2 (no modo de inserção).

Até agora, não notei nenhum efeito colateral desagradável.

    
por 04.07.2013 / 18:19
3

Isso não é possível, infelizmente. Você pode apenas :set list ativado ou desativado e, para os elementos que você não define em 'listchars' , os padrões serão usados.

Eu não recomendaria sempre operar sob :set list , pois tem alguns efeitos colaterais (por exemplo, afetando o envolvimento suave).

Se você está preocupado apenas em destacar os espaços em branco finais, existem plugins que fazem isso por outros meios. Na verdade, eu escrevi o plug-in ShowTrailingWhitespace para isso; a página tem links para alternativas.

    
por 04.07.2013 / 17:44