2324 Stimmen

Vim löscht die Markierung der letzten Suche

Nachdem ich eine Suche in Vim durchgeführt habe, werden alle Vorkommen hervorgehoben. Wie kann ich das abschalten? Ich suche nun erneut nach etwas Kauderwelsch, das nicht gefunden werden kann.

Gibt es eine Möglichkeit, die Hervorhebung vorübergehend zu deaktivieren und sie bei Bedarf wieder zu aktivieren?

7 Stimmen

:set invhlsearch deaktiviert die Hervorhebung, wenn sie bereits hervorgehoben ist, und aktiviert sie, wenn sie es nicht ist. Sie können es mit Shift-H verbinden.

1 Stimmen

@StewartJohnson Wenn ich das in meinen .vimrc-Dateien mache, scheint es mit :set mouse=a zu interferieren/zu brechen. Irgendeine Idee warum? Dieser Fehler tritt nur in iTerm2 auf

0 Stimmen

Ich habe im Laufe der Jahre so viel Kauderwelsch getippt, um diese Markierung zu löschen (wirklich ineffizient bei Textdateien mit mehreren GB). Die Kauderwelsch-Suche ist im Grunde eine zweite Suche, die Rechenzeit vergeudet. Gute Frage!

7voto

Kevin Cox Punkte 2829

Dadurch wird die Markierung der Suche nach updatetime Millisekunden der Inaktivität.

updatetime ist standardmäßig auf 4000ms oder 4s eingestellt, aber ich habe meine auf 10s gesetzt. Es ist wichtig zu beachten, dass updatetime macht mehr als nur das, also lesen Sie die Dokumentation, bevor Sie es ändern.

function! SearchHlClear()
    let @/ = ''
endfunction
augroup searchhighlight
    autocmd!
    autocmd CursorHold,CursorHoldI * call SearchHlClear()
augroup END

6voto

Amaynut Punkte 3801

Wenn Sie in der Lage sein wollen aktivieren/deaktivieren Hervorhebung schnell können Sie einen Schlüssel zuordnen

" Press F4 to toggle highlighting on/off, and show current value.
:noremap <F4> :set hlsearch! hlsearch?<CR>

Fügen Sie einfach den obigen Ausschnitt in Ihre .vimrc-Datei ein.

Das ist für mich der bequemste Weg, um die Suchmarkierung mit einem einzigen Tastendruck ein- und auszublenden

Weitere Informationen finden Sie in der Dokumentation http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches

5voto

skywinder Punkte 20873

Eine weitere Lösung durch Kombination von 2 Top-Antworten:

"To clear the last used search pattern:
nnoremap <F3> :let @/ = ""<CR>

0 Stimmen

Löschen des Suchregisters mit @/="" hat den Nebeneffekt, dass es n nicht funktionieren, um Ihre Suche zurückzubekommen. Ich bevorzuge :noh wodurch die vorherige Suche im Register zur Wiederverwendung erhalten bleibt. Sie können binden <F3> dazu mit nnoremap <F3> :noh<CR>

4voto

caopeng Punkte 796

Können Sie :noremap für das Suchergebnis ein-/auszuschalten, wie folgt

:noremap <F3> :set hls! hls?<CR>

4voto

John Slavick Punkte 9613

Ich verwende Folgendes in meinem ~/.vimrc

nnoremap <Leader><space> :noh<Enter>

So lässt sich die aktuell markierte Suche schnell und einfach löschen. Meine Führungstaste ist belegt mit \ Das macht es sehr einfach, die Aktion mit meinem rechten kleinen Finger und Daumen auszuführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X