Ich mag die "hlsearch" -Einstellung, aber nachdem ich mit der Suche fertig bin, finde ich sie widerlich. Vor allem, wenn ich nach etwas suche, das viele Übereinstimmungen hat. Ich weiß, dass ich das mit ausschalten kann
:set nohlsearch
Aber das dauert ganze 16 Tastenanschläge, und noch ärgerlicher ist, dass ich es für meine nächste Suche mit wieder einschalten muss
:set hlsearch
Gibt es eine Möglichkeit, die Suche automatisch zu aktivieren, wenn ich mit der Suche beginne, und zu deaktivieren, wenn ich mit der Suche fertig bin? Wenn ich beispielsweise in den Einfügemodus wechsle oder den Text ändere, wird die Suche ohne zusätzliche Tastatureingaben deaktiviert?
/
oder zu suchen beginne?
oder wenn ichn
oder drückeN
, wird es eingeschaltet, ohne dass ich weitere Tasten drücken muss.:nno <BS> :set hls!\|set hls?<CR>
- Eine Zeile, ein Tastendruck, Status-Feedback und keine zweite Vermutung, wann Sie Hervorhebungen wünschen oder nicht. Manchmal möchte ich beim Bearbeiten eine Markierung auf dem Bildschirm lassen. Manchmal mache ich das nicht, z. B./
als Bewegung mit einem Operator.nnoremap <M-\> :set hlsearch!<CR><Bar>:echo 'hlsearch: ' . ['Off', 'On'][&hlsearch]<CR>
Antworten:
Es gibt einen viel bequemeren Weg. Anstatt zu verwenden
das schaltet eigentlich die hlsearch einstellung aus, benutze
Dadurch wird die Suche nur so lange deaktiviert, bis Sie erneut suchen. Von
:help nohls
Diese Lösung ist jedoch nicht perfekt, da Sie immer noch tippen müssen,
:nohls
was nach jeder Suche mühsam ist. Sie können dies mit einem Mapping umgehen, zAber es gibt eine noch bessere Lösung! haya14busa / incsearch.vim . Dies ist zumindest meiner Meinung nach ein wesentliches Vim-Plugin. Das Hauptmerkmal ist, dass alle Suchtreffer in Echtzeit hervorgehoben werden, während Sie Ihren regulären Ausdruck eingeben. Beispielsweise:
Als sekundäre Funktion wird jedoch auch die Option bereitgestellt, die Suche sofort ein- und auszuschalten, wenn Sie die Suche starten / beenden. Um diese Funktion zu aktivieren, müssen Sie hinzufügen
zu deinem
.vimrc
.Wenn Sie andere
n
Zuordnungen haben, müssen Sie diese deaktivieren. Zum Beispiel hatte ichDiese beiden Zuordnungen sind nicht miteinander kompatibel!
quelle
set hlsearch
. Wenn Sie es definiert haben, wird es jedes Malvimrc
überschrieben,:noh
wenn Sie die Quelle angebenvimrc
. Um das zu klären, habe ichif !&hlsearch | set hlsearch | endif
in meinemvimrc
. (Und dies ist ein weiteres Problem, das das Plugin löst.)vim-cool ist ein einfaches Plugin, das genau dies tut.
Es funktioniert ohne Remapping durch Verwendung der
CursorMoved
undInsertEnter
automatischen Befehle.quelle
Ich benutze
<Leader><Enter>
als Abkürzung zu:noh
. (Mein Anführer ist,
, so ist es ziemlich nah)Dadurch werden die Markierungen bis zu Ihrer nächsten Suche deaktiviert.
quelle
Wie Sie bereits in Ihrer eigenen Antwort festgestellt haben , ist es weitaus effizienter, die Hervorhebung mit dem
:nohlsearch
Befehl (der abgekürzt werden kann) zu deaktivieren,:noh
als die gesamte Funktion auszuschalten und sie bei der nächsten Suche wieder einzuschalten.Wenn Sie die Hervorhebung bei jedem Wechsel
i
in den Einfügemodus deaktivieren möchten , können Sie eine einfache Zuordnung erstellen:Es ist eine Übung für den Leser, ähnliche Zuordnungen für andere Befehle zu erstellen, deren Hervorhebung deaktiviert werden soll.
quelle
Es klingt vielleicht dumm oder naiv, aber wenn ich die Hervorhebung beenden möchte, suche ich nach einer zufälligen Zeichenfolge, die (mit ziemlicher Sicherheit) nicht im Dokument vorhanden ist. Etwas wie das:
Zugegeben, es dauert ein paar Tastenanschläge, aber sie sind wirklich zufällig, so dass sie in kürzester Zeit eingegeben werden können.
quelle
n
undN
funktioniert nicht mehr, und auch Sachen wie:%s//something
oder:g//something
. Außerdem wird Ihr Suchverlauf unübersichtlichIch benutze
<Leader><Enter>
als Abkürzung:hls
und habe meinen Anführer als Leerzeichen gesetzt.Nach der Suche wird ein Element hervorgehoben. Um es auszuschalten, drücken Sie
<Space><Esc>
. Wenn Sie die Suchergebnisse erneut anzeigen möchten, klicken Sie auf<Space><Esc>
. Diehls!
Mittel ordnen diese Tastenbelegung zu, um die Einstellung fürhls
(Kurzform fürhlsearch
, dh Hervorheben von Suchergebnissen)!
umzuschalten (damit die Einstellung direkt davor umgeschaltet wird).quelle
Ich fand es intuitiver, das Ctrl- repaint Lneu zuzuordnen, um Folgendes einzuschließen
:nohls
:quelle
:help
Abschnitte zu lesen!Fügen Sie dieses Makro Ihrem .vimrc hinzu
Auf diese Weise können Sie das Hilighting mit #h umschalten
quelle