65 votes

Afficher les espaces de fin de ligne dans vim

J'ai défini les options suivantes dans le fichier .vimrc

set listchars=tab:\ ,trail:·
set list

Et je m'attendais à voir des points aux endroits où des espaces sont utilisés pour la tabulation dans le code (j'utilise des espaces, pas des tabulations). Cependant, le résultat est différent :

enter image description here

Pourriez-vous me conseiller sur la manière d'atteindre le résultat souhaité ? Merci !

145voto

icecrime Points 23650

Vous devez vérifier ce lien . J'utilise le match solution de commande :

:highlight ExtraWhitespace ctermbg=red guibg=red
:match ExtraWhitespace /\s\+$/

Cette page fournit également list solutions basées que je n'ai pas personnellement essayé.

14voto

Josh P Points 756

El vim-better-whitespace Le plugin intègre de nombreuses astuces du Page Wiki de Vim référencé dans la réponse de @icecrime. Il dispose également de quelques options de configuration intéressantes.

J'ai installé pathogène.vim juste pour utiliser ce plugin et je suis heureux de ma vie, tout bien considéré.

9voto

Sky Points 307

Pour mettre en évidence les caractères d'espacement de fin de ligne :

:set hlsearch alors

/\s\+$

7voto

Xavier T. Points 14049

Et je m'attendais à voir des points aux endroits où des espaces sont utilisés pour la tabulation dans le code (j'utilise des espaces, pas des tabulations).

En fait, c'est l'inverse, tab L'option est utilisée pour afficher un caractère lorsqu'un caractère de tabulation est inséré ( \t ) au lieu d'espaces. Et trail est utilisé pour afficher les espaces de fin de ligne à la fin de la page fin des lignes .

Vous semblez avoir une seule ligne vide avec des espaces de queue, et les points sont correctement affichés.

Si vous n'utilisez que des espaces tab n'est pas utilisée ou affichée.

3voto

jdhao Points 3136

Une manière plus programmatique de le faire est de recourir à la fonction [matchadd()](http://vimdoc.sourceforge.net/htmldoc/eval.html#matchadd()) :

hi TrailingWhitespace ctermbg=red guibg=red

call matchadd("TrailingWhitespace", '\v\s+$')

Le deuxième paramètre de matchadd() est le modèle que nous voulons faire correspondre. Ici, nous utilisons des guillemets simples pour éviter d'avoir à échapper des caractères spéciaux comme les antislashes, etc. chaîne littérale .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X