![Warum aktiviert Vim meine Hervorhebungskonfiguration erst, nachdem ich meine .vimrc manuell als Quelle verwendet habe?](https://rvso.com/image/31675/Warum%20aktiviert%20Vim%20meine%20Hervorhebungskonfiguration%20erst%2C%20nachdem%20ich%20meine%20.vimrc%20manuell%20als%20Quelle%20verwendet%20habe%3F.png)
Ich räumte aufvimrcheute habe ich es in separate Dateien aufgeteilt, um die Wartung zu vereinfachen. Nach Abschluss dieser Änderungen scheinen alle meine Konfigurationen, Zuordnungen und Plugins zu funktionieren, mit Ausnahme der Hervorhebung nachstehender Leerzeichen.
Ich habe die folgenden Zeilen in .vim/rc/appearance.vim:
highlight RedundantSpaces term=standout ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/ "\ze sets end of match so only spaces highlighted
So wie ich es verstehe, erstellt die erste Zeile eine Hervorhebungsgruppe „RedundantSpaces“ und weist vim an, den Hintergrund von Text, der mit der Hervorhebungsgruppe übereinstimmt, rot zu machen, wenn ein Farbterminal verwendet wird. Die zweite Zeile definiert das Muster, das zum Identifizieren von Text verwendet wird, der mit der Hervorhebungsgruppe übereinstimmt.
Wenn ich eine Datei in vim öffne und anfange, Leerzeichen in eine leere Zeile einzutippen, werden diese nicht rot hervorgehoben. Wenn ich ausführe :source ~/.vimrc
, erscheint die Hervorhebung.
Wenn ich die Zeilen entferne, rc/*.vim
aus denen alle meine einzelnen Dateien stammen .vimrc
, und die beiden obigen RedundantSpaces
Zeilen .vimrc
direkt einfüge, verhält sich vim wie erwartet und nachstehende Leerzeichen werden hervorgehoben.
Wenn ich jedoch die Zeilen „sourcing“ drin lasse rc/*.vim
und dann die RedundantSpaces
Zeilen am Ende von „my“ habe .vimrc
(d. h. diese Befehle werden als letztes ausgeführt, wenn vim aufgerufen wird), funktioniert die Hervorhebung trotzdem nicht und ich muss source ~/.vimrc
…
Es scheint klar, dass etwas in meinen rc/*.vim
Dateien schlecht mit der Hervorhebungskonfiguration interagiert, aber ich kann nicht erklären, woran das liegt. Nichts in diesen Dateien sollte mit der Hervorhebungskonfiguration interagieren.
Kann jemand sagen, was hier schief laufen könnte?
Antwort1
Das Problem wird verursacht durchsinnvolles Plugin: Zeile 93.:help t_Co
" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux'
set t_Co=16 " << --- Causes hickup
endif
Wenn Sie vim im ausführlichen Protokollmodus ( vim -V15load_log.vim
) ausführen – und suchen Sie nach t_Co=
und RedundantSpaces
Sie werden sehen, dass sensible
tatsächlich analysiert wirdnachdeine appearance.vim
Datei.
Eine schnelle Lösung wäre, diesen Codeabschnitt entweder auszukommentieren und zu Ihrem hinzuzufügen .vimrc
, aber da Sie auf Git-Repositorys verlinken, ist das vielleicht nicht das, was Sie wollen.
Ein anderer Ansatz wäre, es aus dem bundle
Verzeichnis zu verschieben und es als separate source
Zeile in Ihrem hinzuzufügen vimrc
.VorIhre Glob-Schleife.
Dh:
source ~/.vim/hacks/vim-sensible/plugin/sensible.vim
for f in split(glob ...
Eine andere Möglichkeit wäre, benutzerdefinierte Hervorhebungen auf BufLoad zu laden.
Usw. …
Antwort2
Wenn Sie NeoBundle verwenden, genügt die Verwendung von NeoBundleLazy 'tpope/vim-sensible'
, then NeoBundleSource
am Ende Ihrer vimrc. Siehe auchhttps://github.com/tpope/vim-sensible/issues/74.