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!

10voto

dkiyatkin Punkte 577

Hierfür gibt es zwei unverzichtbare Plugins:

  1. sinnvoll - Ctrl-l für nohlsearch und redraw screen.
  2. unvorbereitet - [oh , ]oh et coh um hlsearch zu kontrollieren.

0 Stimmen

Unbeeinträchtigt verändert co zu yo in v2, also ist es yoh . Siehe github.com/tpope/vim-unimpaired/blob/v2.0/doc/unimpaired.txt y github.com/tpope/vim-unimpaired/issues/150

0 Stimmen

coh funktioniert immer noch, obwohl eine Meldung erscheint, die vorschlägt, die yoh wenn Sie coh

9voto

Lindsay Haisley Punkte 322

Ich vermute, dass sich die ursprüngliche Frage nicht auf Deaktivierung von Suchhervorhebung, sondern einfach das Löschen der Hervorhebung der letzten Suche. Die Lösung der Suche nach einer Kauderwelsch-Zeichenfolge, die der ursprüngliche Poster erwähnte, ist eine, die ich seit einiger Zeit verwende, um die Hervorhebung von einer früheren Suche zu löschen, aber sie ist hässlich und umständlich.

Einige Vorschläge, die ich gefunden habe, um hinzuzufügen nnoremap ... zu ~/.vimrc haben hier den Effekt, dass sie vim beim Start in den Ersetzungsmodus versetzen, was überhaupt nicht das ist, was ich will. Die einfachste Lösung, die ich gefunden habe, ist das Hinzufügen der Zeile

nmap <esc><esc> :noh<return>

zu meiner ~/.vimrc. Dies entspricht dem KISS-Prinzip und stört nicht die Pfeiltasten, was bei der Verwendung eines einzelnen <esc> der Fall ist. Ein Doppel-<esc> ist im Befehlsmodus erforderlich (oder ein Dreifach-<esc> im Einfüge- oder Ersetzungsmodus), um die Hervorhebung einer vorherigen Suche zu löschen, aber aus Sicht der Benutzeroberfläche macht dies die Operation so einfach wie möglich.

0 Stimmen

Was meinen Sie damit, dass das einzelne <esc> mit den Pfeiltasten interferiert?

1 Stimmen

@hansmosh See unix.stackexchange.com/questions/28713/ Ich verwende zwei Zeilen in meiner .vimrc wie folgt nmap <esc><esc> :noh<return> - to turn off search highlighting and nmap <esc>` :set hlsearch<return> - to turn on search highlighting

8voto

Matthieu Punkte 818

Ich persönlich mag es zu kartieren esc zum Befehl :noh wie folgt:

map <esc> :noh<cr>

Ich habe kürzlich einen ganzen Artikel über die Vim-Suche geschrieben : wie man in Vanilla Vim sucht und das beste Plugin, um die Suchfunktionen zu verbessern.

0 Stimmen

Die Neuzuordnung von <esc> kann problematisch sein, da automatisch eine Zeitüberschreitung hinzugefügt wird, die den Wiedereintritt in den normalen Modus verlangsamt. vi.stackexchange.com/questions/16148/

8voto

Stryker Punkte 5104

Ich verwende einfach den untenstehenden Nohl und benötige keine Plugins.

:nohl

8voto

Janus für VIM und GVIM hat für Neulinge wie mich eine Reihe von Funktionen eingebaut, darunter

<leader>hs - toggles highlight search

Das ist genau das, was Sie brauchen. Tippen Sie einfach \hs im normalen Modus. (Die Führungstaste ist zugeordnet zu \ standardmäßig).

HTH.

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