Entfernen Sie das Highlight von Vim, nachdem Sie nach Text gesucht haben

77

In VIM bleibt dieser Text nach dem Suchen von Text mit dem Befehl "/" hervorgehoben.

Was ist der Befehl, um das zu entfernen? Ich möchte die Hervorhebungsfunktion überhaupt nicht entfernen, aber ich möchte nicht all diese hellen Textflecken haben, sobald ich gefunden habe, was ich brauche.

Vielen Dank.

Kennzeichen
quelle
4
mögliches Duplikat von Wie man
Conner
4
mögliches Duplikat von vim klar letzte Suche Hervorhebung
der Tin Man

Antworten:

121

Geben Sie Folgendes ein:

:noh
Andrew Clark
quelle
8
... was kurz ist :nohlsearch, was dir helfen soll, dich daran zu erinnern!
Cascabel
39
Ich habe :nohals solches abgebildet: nnoremap <silent> <esc> :noh<cr><esc>Ich finde, dass das Schlagen von Escape eine natürliche Möglichkeit ist, das Suchhighlight zu löschen.
Peter Rincker
6
Es kann nützlich sein zu beachten, dass dadurch die Suchhervorhebung nicht deaktiviert wird, sondern lediglich die aktuelle Hervorhebung gelöscht wird (was ich möchte).
Wchargin
30

Sie können es mit umschalten

:set hls!

Eine schnelle und schmutzige Alternative ist natürlich eine weitere Suche nach Kauderwelsch:

/asdsad

Normalerweise binde ich einen Schlüssel, :set hls!um dies zu vereinfachen, und verwende den Kauderwelsch-Ansatz, wenn ich mich auf einem Computer befinde, auf dem mein Profil nicht installiert ist.

Denis Phillips
quelle
Die Suche nach Kauderwelsch hat einige wichtige Nachteile: Sie fügt dem Suchverlauf Müll hinzu. Dies kann für einige Benutzer genauso unpraktisch sein, wie redundantes Hervorheben von der zu erledigenden Arbeit ablenkt.
Victor Yarema
13

Ich bin faul und tippe so etwas wie /asdfdann drücke den RETURNSchlüssel.

der Blechmann
quelle
12

Deaktivieren Sie die Suchhighlights vollständig

:set nohlsearch

Bis zur nächsten Suche löschen

:nohlsearch

oder :nohkurz. Dies löscht Highlights , bis eine neue Suche durchgeführt wird oder noder Ngedrückt


Löschen Sie beim Drücken der benutzerdefinierten Karte

  • Klare Highlights beim Drücken der ESCTaste

    nnoremap <esc> :noh<return><esc>
    
  • Klare \Markierungen beim zweimaligen Drücken (Backslash)

    nnoremap \\ :noh<return>
    
Sheharyar
quelle
Ich versuche mein ~ / .vimrc so minimal wie möglich zu halten, aber dieser nette Double-Backslash-Trick hat dort einen Platz gefunden - danke.
Solr
11

Ich habe dies in meiner .vimrc:

map <leader>h :set hlsearch!<cr>

Also, wenn ich tippe:

\h

Es schaltet die Hervorhebung ein / aus.

Sashang
quelle
9

Wenn Sie das Hervorheben nicht entfernen möchten, können Sie das Suchregister am besten löschen, es sei denn, Sie benötigen die Suchelemente später. Dies verhindert, dass Sie die Hervorhebung erneut aktivieren müssen, und (Bearbeiten: nohHervorhebung wird nicht dauerhaft deaktiviert) verhindert, dass Sie versehentlich herumspringen. So habe ich mein Setup:

nmap <silent> ,/ :let@/=""<CR>

Dadurch wird die Tastenfolge ,/im normalen Modus zugeordnet, um das Suchregister zu löschen, @/indem eine leere Zeichenfolge festgelegt wird. Dies ist nur eine Alternative zu dem, was bereits gesagt wurde.

Tom Miller
quelle
Ihre Antwort enthält zwei Juwelen. Warum nicht kombinieren? nmap <silent> ,/ :nohlsearch<CR>.
Brady Trainor
1

:noh wird hervorgehobenen Text entfernen.

Jiangdongzi
quelle
0

Zusätzlich zum Löschen des Suchregisters können Sie das Suchregister sogar auf den vorherigen Wert zurücksetzen:

command! -nargs=* -range S
\ let atslash=@/|exe ':'.<line1>.','.<line2>.'s'.<q-args>|let @/=atslash

Jedoch:
- Dies setzt den vorherigen Status von nicht zurück :hls. Ich glaube nicht, dass dies generell möglich ist.
- Dies definiert einen neuen Befehl, der :Sanstelle von verwendet werden soll :s. Sie können a verwenden, cabbrevum einander zuzuordnen. Dies wird jedoch unterbrochen, wenn Sie dem Ersatzbefehl einen Bereich hinzufügen.

Circonflexe
quelle