Wenn Sie mit so etwas wie nach einem Wort in einer Datei suchen /console.log
, werden alle Instanzen von console.log
hervorgehoben.
Wenn Sie sich nicht mehr für diese interessieren, kann die Hervorhebung ablenken. Meine derzeitige Strategie zum Entfernen der Hervorhebung besteht darin, so etwas wie zu tun /asntehua
. Gibt es eine richtige Möglichkeit, diese Worthervorhebung zu entfernen?
/skldafjlksjdf
;):nnoremap <silent> <CR> :nohlsearch<CR><CR>
. Drücken Sie im Befehlsmodus die Eingabetaste, und die Hervorhebung verschwindet.Antworten:
Als Alternative zu
:noh
mache ich gerne eine:let @/=""
Zuordnung zu einer Tastenkombination.Der Unterschied besteht darin , dass Sie
:noh
den Suchbegriff in das Suchregister verlässt, son
undN
im normalen Modus die Suche fortsetzen , indem Sie auf den nächsten / vorherigen Spiel und Wiederhervorhebung springen. Wenn Sie:let @/=""
dagegen verwenden, wird die Nachricht ausgelöst,E25: No previous regular expression
und der Cursor bleibt an der Stelle, an der er sich befunden hat. Dies ist besonders praktisch, wenn Sie noch nichts darüber wissenctrl
-o
und dies noch aus Versehenn
.Dies kann auch anders verwendet werden. Damit vim einen Text hervorhebt, ohne zu ihm zu springen, können Sie dies tun
:let @/="some text"
In diesen Ausdrücken können Sie mit @ auf ein Register verweisen, und @ / ist das Register, das das letzte Suchmuster enthält.
quelle
Einfach eintippen
(Wobei
<cr>
ein Wagenrücklauf symbolisiert, dh Eingabetaste.) Die vollständige, nicht abgekürzte Version dieses Befehls lautet:nohlsearch
.Der Einfachheit halber können Sie eine Zuordnung wie z
in deinem
.vimrc
. Da mein Anführer Space ist, kann ich die Hervorhebung durch zweimaliges Tippen auf Space löschen. (Standardmäßig<Leader>
ist festgelegt auf\
)Eine andere beliebte Option ist, es an Ctrl+ zu binden L, da dies mehr oder weniger die Standardeinstellung für "Terminalbildschirm neu zeichnen" ist, was ungefähr so ist, wie Sie es tun:
Dies hat den Nebeneffekt, dass auch der Terminalbildschirm neu gezeichnet wird, was langsam sein kann, wenn Ihre Terminalverbindung langsam ist (was heutzutage sehr selten ist).
HINWEIS: Wenn Sie tpope / vim-sensible verwenden , bietet es bereits die
<C-l>
oben aufgeführte Zuordnung.quelle
Deaktivieren Sie die Suchmarkierung dauerhaft
Übereinstimmungen werden bei jeder Suche mit nicht hervorgehoben /
Markierung bis zur nächsten Suche löschen
oder
:nohlsearch
(löscht, bis noder Ngedrückt wird oder eine neue Suche durchgeführt wird)Klare Hervorhebung beim Drücken von ESC
Klare Hervorhebung beim Drücken einer anderen Taste oder einer benutzerdefinierten Karte
Deutliche Hervorhebungen beim Drücken \(Backslash)
Klare Highlights beim ESCzweimaligen Schlagen
quelle
nnoremap <esc> :noh<return><esc>
,vimrc
aber es funktioniert nicht. Ich mussjk
fliehen, könnte das der Grund sein?ESC
Schlüssel deaktiviert ?jk
von wird der hervorgehobene Text nicht umgeschaltet (funktioniert jedoch weiterhin alsEsc
). Durch Drücken von myEsc
oben links auf meiner Tastatur wird der hervorgehobene Text ausgeblendet.jk
ESC
map
noremap
Nachdem ich einige Lösungsvorschläge für Verknüpfungen in ~ / vimrc ausprobiert hatte, entschied ich mich, sie einfach
nmap <esc><esc> :noh<return>
zu ergänzen . Das doppelte Escape verhindert Störungen der Funktion der Pfeiltasten. Wenn Sie sich im Einfügemodus befinden, ist ein dreifaches Escape erforderlich. Dies ist schnell auszuführen und leicht zu merken.quelle
Ich habe meiner .vimrc-Datei eine Autocmd-Datei hinzugefügt, die die Hervorhebungen bei jedem Wechsel in den Einfügemodus entfernt.
quelle
nohl
stattlet @/=""
wäre ein besserer Ansatz, da Sie dann Ihre aktuelle Suche nicht behindern.:let @/=""
Befehl aberautocmd InsertEnter * :noh
aus irgendeinem Grund nicht, keine Ahnung warum?Wenn Sie nach einer Suche keine Hervorhebung vornehmen möchten, können Sie dies verwenden (besser):
oder das (schlimmer):
quelle
Bei der Eingabe habe
:help incsearch
ich im Handbuch Folgendes gefunden:Ich habe mich damit abgefunden, da andere Lösungen, die ich ausprobiert habe, nicht perfekt waren und diese Lösung sozusagen "direkt aus dem Maul des Pferdes" kommt. Es werden alle Suchtreffer im aktuellen Fenster hervorgehoben.
quelle
Dies hat den Vorteil, dass Sie es nicht genau eingeben müssen. Der Nachteil ist, dass in einer 4096-Byte-Datei eine Wahrscheinlichkeit von 1: 68719476736 besteht, dass dies nicht funktioniert und der Cursor an eine andere Stelle springt. Diese Chance erhöht sich für größere Dateien.
quelle
asdfasdf
ist insofern besonders, als er in praktischen Dateien weitaus häufiger vorkommt als eine zufällig ausgewählte 8-Byte-Sequenz. Somit ist die Chance weitaus höher. :-)Ich halte es überhaupt nicht für eine gute Sache, hls zu entfernen. Wie wäre es, wenn Sie das Erstellen einer einfachen Verknüpfung (boolean) in meinem Fall einfach aktivieren oder deaktivieren würden ->
Die Magie geschieht wegen "
!
" am Ende der Einstellungquelle
Ich finde, dass es sehr selten ist, dass ich überhaupt Hervorheben möchte, und wenn ich Hervorheben muss, ist es nur für einen kurzen Moment. Meine Lösung ist
Dies aktiviert die Hervorhebung, wenn Sie drücken,
\/
und deaktiviert sie erneut, wenn Sie erneut drücken. Dies ermöglicht den einfachen Zugriff auf Hervorhebungen in seltenen Fällen, wenn Sie diese benötigen.quelle