2009-05-24 12 views
19

voglio avere un carattere EOL grigia fissato dalImpossibile effettuare carattere EOL grigio da Vimrc

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

dove non ci sono spazi accanto al carattere ":"

ottengo non EOL carattere per il codice sopra se non utilizzo spazi accanto a ":".

ottengo un carattere finale verde se utilizzo di uno spazio alla

- - tab:[space]>> -- 

anche se non ho configurarlo esplicitamente

tale che

alt text http://dl.getdropbox.com/u/175564/trailingCharacter.png (vecchio codice nel terminale)

Come si può ake il carattere eol grigio in Vim, e per farlo funzionare di nuovo?

+1

"Ho ora il seguente errore: E474: Invalid argument: listchars = scheda:»" Sembra che hai scritto 'imposta listchars = scheda:» 'invece di' set listchars = scheda:> >'. Il secondo caso è corretto, dove hai i segni "maggiori" dopo il colon. Nel primo caso, hai il segno "» ", che è un carattere. Inoltre, come ha detto sykora, non si dovrebbero scrivere spazi dopo ">>" e dopo "traccia:". Quindi ecco cosa dovresti scrivere: set list listchars = scheda: >>, percorso: $ – hcs42

+0

@ hcs42: ora non ho spazi dopo >> e $. Ora non ho un messaggio di errore E474, ma ora non ho alcun carattere finale. –

+0

Ragazzo che il colore blu predefinito è così orribile da leggere. –

risposta

31

Esistono due gruppi di evidenziazione: SpecialKey e NonText. I personaggi finali che hai menzionato appartengono a NonText.

provare qualcosa di simile (y/incollato):

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

Fa il lavoro per voi, o fatto ho capito la domanda sbagliata (del tutto possibile).

+9

Ho trovato che "L'evidenziazione" NonText "verrà utilizzata per" eol "," extends "e " precede "." SpecialKey "per" nbsp "," tab "e" trail "." –

+0

@Masi - Non capisco cosa desideri esattamente. Vuoi cambiare il colore di eol char o vuoi impostare "$" come carattere finale e cambiarne il colore? Nella tua foto nella tua domanda, il carattere nella riga 27 non è un carattere finale, è un carattere eol. – Rook

+0

Ma in quella immagine ci sono anche caratteri finali impostati su $, quindi questa potrebbe essere una fonte di errori. – Rook

7

I trail, tab e nbsp listchars utilizzano il gruppo SpecialKey evidenziare, in modo da poter utilizzare questo:

highlight SpecialKey ctermfg=8 

per rendere il grigio $ simbolo. Se hai attivato 256 colori, puoi utilizzare una diversa tonalità di grigio, ad esempio 243, ecc.

+0

Il codice non modifica il colore del mio carattere finale. Non sono sicuro del perché. --debugging-- Ho aggiunto un piccolo codice al mio post originale. Ho cercato di far funzionare il codice con esso e senza di esso senza successo. –

+1

L'ho provato di nuovo, funziona perfettamente. Sei sicuro di utilizzare tutti gli spazi che hai inserito nel tuo post? per esempio. Lo spazio prima, è illegale, ecc. Almeno sta sbagliando qui. – sykora

+0

Questo metodo ha funzionato quasi per me (modalità terminale Vim 7.3). Ma funziona solo quando rilascio questo comando su vim prompt, inserendolo in 'vimrc' non ha effetto – Dfr

4

Se si desidera che il EOL essere grigio, specificare il EOL sotto-opzione di listchars invece di percorso:

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

percorso mostra i caratteri di spazio bianco non necessari alla fine delle linee non la fine delle linee stesse.

Se si desidera impostare il colore di EOL, è necessario impostare l'evidenziazione del gruppo NonText:

highlight NonText ctermfg=8 guifg=gray 

Se si specifica sia ctermfg e guifg, l'evidenziazione funziona sia nella GUI e in un terminale.

devo segnalare se alcune carenze:

  • L'evidenziazione dei caratteri tilde dopo la fine del buffer sono gli stessi l'evidenziazione delle EOL-segni. Penso che non sia possibile a separare quelli; le loro evidenziazioni sono entrambe determinate dall'evidenziazione di NonText. Quindi se imposti eols grigi, sarai una tild grigia.
  • Sul mio terminale, ctermfg=8 rende il testo rosso e non grigio.
Problemi correlati