Vim: So ändern Sie die aktuelle Farbe der Elementhervorhebung beim Ersetzen


11

Ich habe meine Vim-Farben so geändert /search, dass jedes Match in leuchtendem Gelb hervorgehoben wird , wenn ich a mache . Dadurch sind Übereinstimmungen viel einfacher zu sehen.

Wenn ich jedoch eine Ersetzung mit dem Bestätigungsflag durchführe, werden :%s/find/replace/gcalle Elemente gelb hervorgehoben, was in Ordnung ist, aber ich kann nicht sagen, welches Element Vim mich zur Bestätigung auffordert.

Wie kann ich das aktuelle Substitutionselement in einer anderen Farbe hervorheben, damit ich sehen kann, was bestätigt werden muss?


Antworten:


7

Die gewünschte Hervorhebungsgruppe ist "IncSearch", auch wenn die Option "incsearch" nicht aktiviert ist. Sie wird auch für die aktuelle Ersetzung verwendet, wenn die Bestätigung aktiviert ist.

Siehe " :help hl-IncSearch".


Danke, genau das habe ich gebraucht. Ich muss jetzt mit Farben
herumspielen

1
Zusatzfrage. Ist es möglich, Übereinstimmungen hervorzuheben, wenn Sie die einzelnen Übereinstimmungen mit durchlaufen nund Nnur normal suchen?
Jordanelver

Ich gehe davon aus, dass Sie nicht nur "hlsearch" aktivieren wollen. Ich glaube nicht, dass die "aktuelle" Übereinstimmung anders hervorgehoben werden kann als alle Übereinstimmungen, aber ich habe sie nicht benötigt, da sich der Cursor mit n / N zur aktuellen Übereinstimmung bewegt.
Heptite

Entschuldigung, war nicht klar. Ich habe verschiedene Farben für IncSearchund eingestellt Search. Wenn ich /searchterm, wird die Übereinstimmung in der IncSearchFarbe hervorgehoben. Wenn ich die Eingabetaste drücke, num zu jedem Match zu springen, werden alle Matches Searchfarbig. Was ich möchte, ist, die Farbe jedes Spiels zu ändern, wenn ich dorthin springe. Ist das sinnvoll? :) Das passiert jetzt mit :%s/find/replace/gc. Jedes Spiel wird in einer anderen Farbe hervorgehoben, wenn ich yoder drücke n.
Jordanelver

Ja, wie gesagt, es gibt keine Möglichkeit, dies zu tun. Ich denke nicht, dass dies als notwendig erachtet wird, da der Cursor in diesem Zusammenhang auf dem aktuellen Spiel stehen soll, und das sollte ein ziemlich klarer Indikator sein.
Heptite

2

In vim können Sie den Befehlsmodus verwenden:
:highlight IncSearch guibg=green ctermbg=green term=underline

Um es immer zu haben, setzen Sie dies in Ihre .vimrc:
highlight IncSearch guibg=green ctermbg=green term=underline

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.