Warum aktiviert Vim meine Hervorhebungskonfiguration erst, nachdem ich meine .vimrc manuell als Quelle verwendet habe?

Warum aktiviert Vim meine Hervorhebungskonfiguration erst, nachdem ich meine .vimrc manuell als Quelle verwendet habe?

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/*.vimaus denen alle meine einzelnen Dateien stammen .vimrc, und die beiden obigen RedundantSpacesZeilen .vimrcdirekt einfüge, verhält sich vim wie erwartet und nachstehende Leerzeichen werden hervorgehoben.

Wenn ich jedoch die Zeilen „sourcing“ drin lasse rc/*.vimund dann die RedundantSpacesZeilen 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/*.vimDateien 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 RedundantSpacesSie werden sehen, dass sensibletatsächlich analysiert wirdnachdeine appearance.vimDatei.

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 bundleVerzeichnis zu verschieben und es als separate sourceZeile 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 NeoBundleSourceam Ende Ihrer vimrc. Siehe auchhttps://github.com/tpope/vim-sensible/issues/74.

verwandte Informationen