Wo ist die Farbe des cursor-Zeile definiert?
Wenn ich cursorline
option bekomme ich meine aktuellen cursor-Linie Unterstrichen, und alle Zeichen, die keine Farbe angegeben wird, wendet sich auch gelb (gelb erscheint nur, wenn Normal highlight-Gruppe ist davon unberührt). Ich Frage mich, wo diese Farbe (gelb) ist definiert?
Edit: ich weiß über CursorLine
highlight-Gruppe. Das problem ist, dass im Standard-colorscheme die ich benutze, es ist nicht definiert und nicht :hi CursorLine
zeigt
CursorLine xxx term=underline cterm=underline
wobei xxx gefärbt mit gelb und Unterstrichen. Ich will nicht die Farbe ändern, möchte ich hinzufügen, dass cursorline
Unterstützung für 2html.vim
-wie plugin und so brauche ich einige highlight-Gruppe/variable/etc, wo kann ich diese gelbe Farbe aus.
- Gehört auf superuser.com
- Siehe meine bearbeitete Antwort unten, basierend auf update.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit: Sie können Abfragen die meisten der Werte, die für ein besonderes highlight-Gruppe mit der
synIDattr()
Funktion. Zum Beispiel, dies wird drucken Sie die Vordergrundfarbe zugewiesenCursorLine
wenn Sie eines festgelegt:Können Sie auch bestimmen, den Zustand der
underline
,undercurl
usw., mit ähnlichen anrufen.Ein paar Warnungen:
synIDattr()
ist fehlerhaft und unvollständig. Manchmal gibt -1 zurück, unerwartet, und derzeit nicht erlauben, alle Attribute untersucht werden. (Ein patch ist angeblich in Arbeit für eine kommende Version von Vim.) Siehe diese threads für mehr Informationen:Problem mit synIDattr()
Programmgesteuert erkennen einer aktuellen "highlight" - Einstellung?
Wenn
synIDattr()
nicht tun, was Sie wollen, könnte es einfacher sein, leiten Sie die Ausgabe deshighlight
Befehls in eine variable und parse Sie es selbst:Die Farbe der cursor-Zeile kann mit einem
highlight
Befehl wie diesen:Dies erfolgt in der Regel innerhalb von einem Vim-colorscheme-Datei, die enthält viele solcher Linien definieren die Farben für Teile des Vim-Benutzer-Schnittstelle, sowie für die gemeinsame syntaktische Elemente wie strings, zahlen, Schlüsselwörter, etc.
Können Sie Vim sagen, was colorscheme zu verwenden, indem er die
colorscheme
Befehl, gefolgt von einem Schema-Namen. Hier sind ein paar zu versuchen:Jedoch, die meisten der colorschemes enthalten Vim enthalten nicht unbedingt ein highlight Befehl für die
CursorLine
element, so Vim nur verwendet seine integrierte Standard-cursorline Färbung.Um die Farben zu ändern Vim verwendet für die cursorline, Sie können Ihre eigenen
highlight
- Befehl in der.vimrc
Datei (nach Sie schon ausgestellt allecolorscheme
Befehl aus; ansonsten werden Ihre highlight-Farben mögen deaktiviert). Besser noch, Sie können Ihre eigenen colorscheme-Datei und fügen Sie das entsprechende highlight-Anweisung gibt. (Macht es Euch leicht, indem Sie eine tolerierbare colorscheme, dann kopieren Sie es und machen was auch immer änderungen, die Sie mögen.)Vim enthält mehrere colorscheme-Dateien, und Sie finden viele weitere online. Hier ist eine Website, die Vorschau ein paar hundert:
http://code.google.com/p/vimcolorschemetest/
Finden Sie in der folgenden Hilfe-Themen für mehr info:
Schauen Sie sich auch http://vim.wikia.com/wiki/Configuring_the_cursor für einige andere Möglichkeiten, um Sie anzupassen
Auf coloescemes, die Eigenschaft der Farbe des cursorline ist nur als "CursorLine". Zum Beispiel, der wombat colorscheme benutzt diese Zeile:
Wenn Sie ändern möchten, ein Standard-colorscheme, der die Dateien gespeichert sind (auf den meisten Linux-Distributionen) auf /usr/share/vim/vim72/Farben.
Nur ein Hinweis: die CursorLine option funktioniert erst ab Vim 7 nach oben, also für den sehr unwahrscheinlichen Fall, dass Sie jemals verwenden, dass colorscheme mit einer version vor 7 (oder Vi), sollten Sie für die version auf die colorscheme-Datei, zum Beispiel:
let g:colors_name
zu den von Ihnen ausgewählten Namen für die Datei und ändern/hinzufügen markieren Sie die Gruppen, die Sie wollen. Beachten Sie unter windows Ihre Benutzer-spezifischen Pfad wird$HOME\vimfiles
. Sie können die Pfade sehen vim verwendet, die zur Laufzeit durch:set rtp?
.