2009-05-24 7 views
19

Je veux avoir un caractère eol gris fixé parIncapable de caractère eol gris par Vimrc

set list listchars=tab:>>,trail:$ 

où il n'y a pas d'espace à côté du caractère « : »

Je reçois pas eol le caractère pour le code ci-dessus si je n'utilise aucun espace à côté de ":".

je reçois un caractère de fuite vert si j'utilise un espace à

- - tab:[space]>> -- 

bien que je n'y ai pas mis en place explicitement

tels que

alt text http://dl.getdropbox.com/u/175564/trailingCharacter.png (ancien code dans le terminal)

Comment pouvez-vous m Ake le caractère eol gris dans Vim, et de le faire fonctionner à nouveau?

+1

« Je reçois maintenant l'erreur suivante: E474: Invalid argument: listchars = onglet:» » Il semble que vous avez écriture « set listchars = onglet: » 'au lieu de' set listchars = onglet:> > '. Le deuxième cas est correct, où vous avez des signes «plus grands» après le côlon. Dans le premier cas, vous avez le signe "" ", qui est un caractère. Aussi, comme sykora l'a dit, vous ne devriez pas écrire d'espaces après ">>" et après "trail:". Voici donc ce que vous devez écrire: set list listchars = tab: >>, trail: $ – hcs42

+0

@ hcs42: Je n'ai plus d'espaces après >> et $. Je n'ai plus de message E474 -error, mais je n'ai plus de caractère final. –

+0

Garçon que la couleur bleue par défaut est si terrible à lire. –

Répondre

31

Il existe deux groupes de surlignage: SpecialKey et NonText. Les caractères finaux que vous mentionnez appartiennent à la non-texte.

Essayez quelque chose comme ça (y/collé):

set list 
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:< 
hi NonText ctermfg=7 guifg=gray 

Est-ce que le travail pour vous, ou est-ce que je comprends la question mal (tout à fait possible).

+9

J'ai trouvé que "La mise en surbrillance" NonText "sera utilisée pour" eol "," extends "et " precedes "." SpecialKey "pour" nbsp "," tab "et" trail "." –

+0

@Masi - Je ne comprends pas ce que vous voulez exactement. Voulez-vous changer la couleur de eol char, ou voulez-vous mettre "$" comme caractère de fin, et changer sa couleur? Dans votre photo dans votre question, le personnage de la ligne 27 n'est pas un personnage final, c'est un eol char. – Rook

+0

Mais dans cette image, vous avez également des caractères finaux mis à $, ce qui pourrait être une source d'erreurs. – Rook

7

Les trail, tab et nbsp listchars utilisent le groupe de surbrillance SpecialKey, vous pouvez utiliser ceci:

highlight SpecialKey ctermfg=8 

pour rendre le symbole gris $. Si 256 couleurs sont activées, vous pouvez utiliser une nuance de gris différente, comme 243, etc.

+0

Le code n'apporte aucune modification à la couleur de mon caractère final. Je ne suis pas sûr pourquoi. --debugging-- J'ai ajouté un petit code à mon message original. J'ai essayé de faire fonctionner votre code avec et sans succès. –

+1

Je l'ai essayé à nouveau, fonctionne parfaitement. Êtes-vous sûr d'utiliser autant d'espaces que vous avez mis dans votre message? par exemple. Espace avant, est illégal, etc. Au moins, c'est une erreur ici. – sykora

+0

Cette méthode a presque fonctionné pour moi (mode terminal Vim 7.3). Mais cela ne marche que lorsque je lance cette commande sur vim prompt, la mettre dans 'vimrc' n'a aucun effet. – Dfr

4

Si vous voulez que le eol être gris, spécifiez le eol sous-option de listchars au lieu de piste:

set list listchars=tab:>>,eol:$ 

piste montre les caractères blancs inutiles à la fin des lignes , pas la fin des lignes elles-mêmes.

Si vous souhaitez définir la couleur de eol, vous devez définir la mise en évidence du groupe NonText:

highlight NonText ctermfg=8 guifg=gray 

Si vous spécifiez à la fois ctermfg et guifg, la mise en valeur fonctionnera à la fois dans l'interface graphique et dans un terminal.

Je dois signaler que certaines lacunes:

  • La mise en évidence des caractères tilde après la fin de la mémoire tampon sont les même que la mise en évidence des eol-signes. Je pense qu'il n'est pas possible de séparer ces deux éléments; leurs surbrillances sont toutes deux déterminées par la surbrillance de NonText. Donc, si vous définissez des eols gris, vous serez des tildes gris. Sur mon terminal, ctermfg=8 rend le texte rouge et non gris.
Questions connexes