23 Stimmen

Es ist nicht möglich, graue eol-Zeichen durch .vimrc zu erzeugen

Ich möchte einen grauen eol-Zeichensatz haben, indem ich

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

wenn neben dem Zeichen ":" keine Leerzeichen stehen

Ich bekomme kein eol-Zeichen für den obigen Code, wenn ich keine Leerzeichen neben ":" verwende.

Ich erhalte ein grünes nachgestelltes Zeichen, wenn ich ein Leerzeichen bei

- - tab:[space]>> --

obwohl ich es nicht explizit eingerichtet habe

derart, dass

Alt-Text http://dl.getdropbox.com/u/175564/trailingCharacter.png (alter Code im Terminal)

Wie kann man das Zeichen eol in Vim grau machen, und es wieder zum Laufen zu bringen?

37voto

Rook Punkte 57113

Es gibt zwei Hervorhebungsgruppen: SpecialKey und NonText. Die von Ihnen erwähnten nachgestellten Zeichen gehören zur Gruppe "NonText".

Versuchen Sie etwas wie dies (y/eingefügt):

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

Funktioniert das bei Ihnen, oder habe ich die Frage falsch verstanden (gut möglich).

8voto

sykora Punkte 88704

Le site trail , tab y nbsp listchars verwenden die SpecialKey Gruppe hervorheben, so dass Sie diese verwenden können:

highlight SpecialKey ctermfg=8

um die $ Symbol grau. Wenn Sie 256 Farben aktiviert haben, können Sie einen anderen Grauton verwenden, z. B. 243 usw.

4voto

hcs42 Punkte 12948

Wenn Sie die eol grau sein soll, geben Sie den eol Unteroption von listchars anstelle von Pfad :

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

Pfad zeigt die unnötigen Leerzeichen am Ende der Zeilen an, nicht das Ende der Zeilen selbst.

Wenn Sie die Farbe von eol müssen Sie die Hervorhebung des Feldes NonText Gruppe:

highlight NonText ctermfg=8 guifg=gray

Wenn Sie beides angeben ctermfg y guifg funktioniert die Hervorhebung sowohl in der grafischen Benutzeroberfläche als auch in einem Terminal.

Ich muss jedoch auf einige Unzulänglichkeiten hinweisen:

  • Die Hervorhebung der Tilde-Zeichen nach dem Ende des Puffers ist die gleiche gleich wie die Hervorhebung der eol-Zeichen. Ich denke, es ist nicht möglich zu trennen; ihre Hervorhebungen werden beide durch die Hervorhebung von NonText . Also, wenn Sie grau eols setzen, werden Sie grau tildes werden.
  • Auf meinem Terminal, ctermfg=8 macht roten und nicht grauen Text.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X