Vim wyczyść wyróżnienie ostatniego wyszukiwania

1903

Po przeszukaniu w Vimie podświetlam wszystkie wystąpienia. Jak mogę to wyłączyć? Teraz ponownie szukam czegoś bełkotu, którego nie można znaleźć.

Czy istnieje sposób na tymczasowe wyłączenie podświetlenia, a następnie ponowne włączenie go, gdy zajdzie taka potrzeba?

Gabriel Solomon
źródło
197
Myślę, że rozwiązanie „nnoremap <esc>: noh <return> <esc>” jest bardziej kompletną odpowiedzią na pytanie - umieszczając to w .vimrc, możesz po prostu nacisnąć <esc> po wyszukiwaniu, aby usunąć zaznaczenie z poprzedniego wyszukiwania (ale nie wyłączaj podświetlania na dobre).
Stewart Johnson,
5
: set invhlsearch wyłączy podświetlanie, jeśli jest już podświetlone, i włącz je, jeśli nie jest. Możesz zmapować go, by powiedzieć Shift-H.
puffadder
1
@StewartJohnson robi to w moich plikach .vimrc wydaje się zakłócać / przerywać: set mouse = a. Jakieś pomysły dlaczego? Ten błąd występuje tylko w iTerm2
Charlie Parker
20
@StewartJohnson Bądź ostrożny! Twój najwyżej oceniany komentarz z mapowaniem powoduje błędy i nieoczekiwane zachowanie opisane w komentarzach do stackoverflow.com/a/1037182/1698467
skywinder
3
nnoremap <esc> :noh<return><esc>Rozwiązanie sugerowane przez @StewartJohnson działa ładnie w GUI vim, ale powoduje problemy z klawiszami strzałek i innych klawiszy ESC zakodowane przy uruchamianiu vim w terminalu. Nie należy umieszczać go w ~/.vimrc bez zawijania w if has('gui_running')... end.
jbyler

Odpowiedzi:

1586

Aby wyłączyć wyróżnianie do następnego wyszukiwania:

:noh

Lub całkowicie wyłącz wyróżnianie:

set nohlsearch

Lub, aby przełączyć:

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>
Mykoła Golubiew
źródło
14
Wykonując set nohlsearch, podświetlanie powraca po ponownym uruchomieniu vima. :nohdziała lepiej.
Dharmit
21
denerwujące jest to, że wyszukiwanie bełkotliwego ciągu: / oajf3w9 może być tak samo szybkie, jak wpisanie: noh. Podoba mi się rozwiązanie @ avocade polegające na mapowaniu klawisza spacji na: noh
nnyby
160
Nie wynika to jasno z tej odpowiedzi i komentarzy: zwróć uwagę, że set nohlsearchwyłączy to również podświetlanie dla kolejnych wyszukiwań. Zachowanie :nohjest bardzo różne: podświetlenie zostanie automatycznie ponownie włączone, gdy przeprowadzasz nowe wyszukiwanie lub nawet gdy robisz coś związanego z bieżącym wyszukiwaniem (np. Kiedy piszesz, naby przejść do następnego elementu).
Skippy le Grand Gourou,
10
Brak wyjaśnienia, co one faktycznie robią i jakie są konsekwencje. Dzięki @SkippyleGrandGourou za wyjaśnienie niektórych z nich.
Jason S
3
Dla tego, co jest warte, odwzorowuję to '\/'(lub cokolwiek to jest Twój przywódca):map <Leader>/ :nohlsearch<CR>
brianmearns
689

Z dokumentacji VIM

Aby wyczyścić ostatnio używany wzorzec wyszukiwania:

:let @/ = ""

To nie ustawi wzorca na pusty ciąg, ponieważ pasowałby wszędzie. Wzór jest naprawdę wyczyszczony, tak jak podczas uruchamiania Vima.

Shaun Bouckaert
źródło
129
... co byłoby lepszym rozwiązaniem jego problemu, jak rozumiem.
Shaun Bouckaert
8
Właśnie tego szukałem! Głosowałem za tym, pytanie jest nieco niejasne. Doprowadziło mnie to do wniosku, że właśnie tego chciał: „Teraz ponownie szukam czegoś bełkotu, którego nie można znaleźć”. Ponieważ to właśnie robiłem, aby wyczyścić wyszukiwanie, ale nie wyłączać go, aby kolejne wyszukiwanie ponownie się podświetliło.
claytron
50
O to myślałem, że chodziło o pytanie ... oto polecenie, które wydałem, aby przyspieszyć czyszczenie szukanego ciągu (a tym samym usunąć wszystkie podświetlenia): :command C let @/=""Użycie tego pozwala na wpisanie, :Caby wyczyścić szukany ciąg ... bardzo szybko i nie wpływa na przyszłe wyszukiwanie ani wyróżnianie.
Jason
12
@ jcreamer898, patrz pomoc vima na temat „register” ( :he registers). Vim ma kilka różnych wbudowanych rejestrów, które przechowują tekst, czasem dla szarpanych danych, czasami dla ostatniego wyszukiwania itp. Podczas wyszukiwania, vim umieszcza wzorzec w rejestrze „/”, do którego się odwołujesz @/. Możesz także przypisać wartości do rejestrów, używając @regname=valuegdzie gdzie regnamejest nazwa rejestru. Po @/=""prostu ustawia rejestr „/” na pusty ciąg znaków (z wyjątkiem tego, że dla rejestru „/” vim wyczyści ostatnie wyszukiwanie, jeśli zawiera pusty ciąg).
Ben Davis,
3
Dodaj to do swojego .vimrc, aby uzyskać Ctrl + /, aby wyczyścić ostatnie wyszukiwanie: noremap <silent> <c-_> :let @/ = ""<CR>
angrydust
583

Możesz to zrobić

:noh

lub :nohlsearchtymczasowo wyłączyć podświetlanie wyszukiwania do następnego wyszukiwania.

Matt McMinn
źródło
3
dzięki, to było pomocne ... jakieś polecenie powrotu do podświetlenia?
Gabriel Solomon
17
: nohs po prostu wyłącza bieżące podświetlanie. Jeśli masz: ustaw hlsearch, a następnie podświetli twoje wyszukiwania.
greyfade
6
Myślę, że tego właśnie szukał PO (choć odpowiedź Shauna również działa). Głosuję za tym, że jestem niższy. Wiem, że zaakceptował odpowiedź nohlsa, ale jej ustawienie spowoduje wyłączenie podświetlenia wszystkich wyszukiwań, nawet jeśli później spróbuje się innego wyszukiwania.
Thiago Arrais
5
Prawdopodobnie tego właśnie chciał PO i jest to najkrótsza, najlepsza odpowiedź IMHO.
Doskonałość jest osiągalna nawet w tym śmiertelnym królestwie! Użyję tego więcej niż: help i nie chcę zanieczyszczać <esc>: nnoremap <F1>: noh <CR>
Sam Watkins
305

Znalazłem tę odpowiedź lata temu na vim.org:

Dodaj następujące elementy do pliku .vimrc:

"This unsets the "last search pattern" register by hitting return
nnoremap <CR> :noh<CR><CR>

Dlatego po zakończeniu wyszukiwania naciśnij ponownie klawisz Return w trybie poleceń, a podświetlenie zniknie.


źródło
36
Myślę, że jest to znacznie lepsze rozwiązanie niż to, które faktycznie zostało zaakceptowane - albo to jedno, albo drugie, w którym zamiast tego jest mapowane na <ESC>.
Stewart Johnson,
20
Jest to znacznie lepsza odpowiedź na „nnoremap <esc>: noh <return> <esc>”, ponieważ nie powoduje dziwnego zachowania.
Dennis
19
Ważną rzeczą do zapamiętania, upewnij się, że nie umieszczasz żadnych komentarzy po prawej stronie remapu. Będą one interpretowane jako polecenia remapu, a nie komentarze.
codybuell,
13
Komentarz jest błędny; komenda powoduje nie rozbroić ostatniego wyszukiwania wzorca, ale po prostu się wyłącza podświetlenie aktualnych wyników; możesz nacisnąć, naby znaleźć następne wystąpienie (które zostanie ponownie podświetlone). BTW, podczas pisania skryptów unikałbym skróconej formy i zamiast tego pisałem :nohlsearch.
Tobias
28
Dodaj <silent>, aby uniknąć migania wyświetlacza i pozostawienia nic w wierszu poleceń -: nnoremap <silent> <CR>: nohlsearch <CR> <CR>
Peter N Lewis
137

Od http://twitter.com/jonbho/status/2194406821

" Clear highlighting on escape in normal mode
nnoremap <esc> :noh<return><esc>
nnoremap <esc>^[ <esc>^[

Druga linia jest potrzebna do mapowania na klawisz Escape, ponieważ Vim wewnętrznie używa Esc do reprezentowania specjalnych klawiszy.

Baruch Even
źródło
12
Żeby było jasne, pozwala to wyczyścić podświetlanie wyszukiwania, naciskając klawisz Escape
Gavin Miller
7
Z jakiegoś powodu powoduje to, że mój terminal vim uruchamia się tak, jakby naciśnięto „c”. Jakieś pomysły?
Jakub
31
Spowodowało to pewne dziwne zachowanie, kiedy próbowałem: przy starcie regularne ruchy vima (np. J, k) powodowałyby usunięcie linii. nnoremap <CR>: noh <CR> <CR> nie spowodował tych problemów. Nie mogłem wyśledzić przyczyny.
oasisbob
9
hmm, miałem taki sam problem jak te powyżej. Nie używaj tego w obecnym stanie bez testowania, chyba że lubisz usuwać tekst losowo ...
Derek Litz
8
użycie „nnoremap <esc>: noh <powrót> <esc>” powoduje, że vim zawsze zaczyna się w trybie „WYMIANY”.
user1850133
38

Moje oryginalne rozwiązanie (poniżej) było brudne i marnotrawne. Teraz używam:noh

Podobnie jak wiele funkcji w Vimie, właściwa droga często nie jest łatwa do wykrycia.

-

(NIE RÓB TEGO)

Wyszukaj mało prawdopodobną sekwencję znaków (zacieraj klawisze w wierszu głównym):

/;alskdjf;

Działa to w vimie i mniej, i łatwiej jest zapamiętać / wpisać niż logicznie czystsze rozwiązanie @ ShaunBouckaert „aby usunąć ostatnio używany wzorzec wyszukiwania”:

:let @/ = ""

Potencjalnym minusem jest to, że dodaje śmieci do historii wyszukiwania.

millerdev
źródło
17
Jest to nie tylko brudne rozwiązanie (którego sam do tej pory używałem, bez obrazy), ale kolejną wadą jest to, że dodaje brzydki czerwony sztandar z napisem „nie znaleziono wzoru” w dolnej części okna, co jest prawie tak denerwujące jak wyróżnienie i wymaga odrzucenia dalszych działań (np. „szukaj + backspace”).
Skippy le Grand Gourou,
5
Może to również potrwać kilka sekund, ponieważ faktycznie przeszukuje całą resztę pliku. To naprawdę denerwujące, jeśli plik jest duży. Oczywiście możesz zaznaczyć swoją obecną pozycję, przeskoczyć na początek i wyszukać postać do tyłu, ale to również jest brudne.
Blacklight Shining
5
Jest to rozwiązanie, z którego większość skorzysta przed zapoznaniem się z :nohlpoleceniem. Gdy dowiedziałem się o tym drugim, natychmiast przestałem wyszukiwać.
Tobias
7
To nie jest odpowiedź; po prostu zaleca zrobienie tego, co już robi OP: „Teraz szukam czegoś bełkotu, którego nie można znaleźć”.
Przywróć Monikę - notmaynard
2
Jeśli chcesz mieć niezawodny i krótki wzór, po prostu użyj /$4. Jest nie tylko mało prawdopodobne, aby coś do siebie pasowało, ale w rzeczywistości NIEMOŻLIWE. $zawsze musi następować nowa linia lub być końcem pliku, a 4 nie jest ani nową linią, ani końcem pliku. (Powodem 4 jest po prostu to, że ma ten sam klawisz, więc bardzo łatwo jest szybko pisać)
średnik
32

Zmapowany do mojego pliku .vimrc.local, szybki i brudny, ale bardzo funkcjonalny:

" Clear last search highlighting
map <Space> :noh<cr>
awokada
źródło
32
nnoremap <cr> :noh<CR><CR>:<backspace>

W ten sposób pozbywam się :nohpokazanego w wierszu poleceń, gdy uderzamenter po wyszukiwaniu.

:przypomina rozpoczęcie wprowadzania nowego polecenia, Backspaceusuwa je i przenosi fokus z powrotem do okna edytora.

sjas
źródło
6
Dziękuję Ci. Pojawiające się w lewym dolnym rogu „: noh” doprowadzało mnie do szaleństwa, cholerna OCD.
andrewtweber
Próbowałem zmapować go do przesuniętego cr, wykonując nnoremap <S-cr>: noh <CR> <CR>, ale to nie działało, czy wiesz, dlaczego może nie działać?
Charlie Parker
Podejrzewam, że nie można łączyć zmiany z powrotem, ale szczerze mówiąc nie mam pojęcia.
sjas
@CharlieParker IIRC możesz używać tylko Shift On [a-z]i takich znaków.
sjas,
7
Zamiast robić :<Backspace>, wystarczy dodać <silent>po nnoremappowiedzieć Vima nie wyświetla żadnych wyjście w obszarze poleceń: nnoremap <silent> <cr> :noh<CR><CR>.
Soren Bjornstad
31

Odpowiedzi proponujące :nohlub :nohlsearch(np. Matt McMinn) są poprawne tymczasowo wyłączenia podświetlania wyszukiwania - zgodnie z pierwotnym pytaniem.

Pomyślałem, że przyczynię się do mapowania, które uważam za przydatne w trybie normalnym:

nnoremap <C-L> :nohlsearch<CR><C-L>

Domyślnie CtrlLw Vimie czyści i przerysowuje ekran. Wiele programów wiersza poleceń (głównie tych korzystających z biblioteki GNU Readline , takich jak Bash) używa tej samej kombinacji klawiszy, aby wyczyścić ekran. Ta funkcja jest przydatna w sytuacji, gdy proces działający w tle drukuje do terminala, zastępując części procesu pierwszego planu.

To mapowanie w trybie normalnym usuwa również podświetlenie ostatniego wyszukiwanego terminu przed przerysowaniem ekranu. Uważam, że dwie funkcje się uzupełniają i wygodnie jest używać jednej CtrlLz nich dla obu akcji razem, zamiast tworzyć osobne mapowanie w celu wyłączenia podświetlania wyszukiwania.

Uwaga: noremap zamiast tego używane jest mapodwzorowanie rekurencyjne.

Wskazówka: Zwykle remap Caps Lockaby Ctrlułatwić wpisywanie takich kombinacji klawiszy; szczegółowe informacje na ten temat zależą od wybranego przez ciebie systemu operacyjnego / systemu okien (i są nie na temat tej odpowiedzi). Zarówno Poniższe wskazówki zawierają informacje na temat mapowania Caps Lockaby Ctrljak Esc:

Anthony Geoghegan
źródło
26

Zazwyczaj odwzorowuję :nohklawisz odwrotnego ukośnika. Aby ponownie włączyć podświetlanie, wystarczy nacisnąć n, a podświetli się ponownie.

jaskiniowiec
źródło
24

Wyłącz podświetlanie wyszukiwania na stałe

Dopasowania nie będą podświetlane przy każdym wyszukiwaniu za pomocą /

:set nohlsearch

Wyczyść zaznaczenie do następnego wyszukiwania

:noh

lub :nohlsearch(usuwa do momentu naciśnięcia nlub N)


Wyczyść zaznaczenie po naciśnięciu ESC

nnoremap <esc> :noh<return><esc>

Usuń zaznaczenie po naciśnięciu innego klawisza lub mapy niestandardowej

  • Wyczyść podświetlenia po naciśnięciu \(ukośnik odwrotny)

    nnoremap \ :noh<return>
    
  • Wyczyść zaznaczenia po ESCdwukrotnym trafieniu

    nnoremap <esc><esc> :noh<return>
    
Sheharyar
źródło
2
nnoremap <silent> <esc> :noh<return><esc>Rozwiązanie działa ładnie w GUI vim, ale powoduje poważne problemy z klawiszy strzałek i innych klawiszy ESC zakodowane przy uruchamianiu vim w terminalu. Nie należy umieszczać go w ~/.vimrc bez zawijania w if has('gui_running')... end. Zastanów się również nad dodaniem tego, <silent>co pozwala uniknąć flashowania :nohpolecenia na pasku stanu.
jbyler
17

Oto, czego używam (wyodrębniony z wielu różnych pytań / odpowiedzi):

nnoremap <silent> <Esc><Esc> :let @/=""<CR>

Przy „podwójnym” Escusuwasz podświetlenie, ale jak tylko zaczniesz szukać, podświetlenie pojawi się ponownie.


Inna alternatywa:

nnoremap <silent> <Esc><Esc> :noh<CR> :call clearmatches()<CR>

Według dokumentacji vima:

rozszczepienia ()

    Clears all matches previously defined by |matchadd()| and the

    |:match| commands.
Pablo Olmos de Aguilera C.
źródło
Napotkałem kilka błędów w najlepszych rozwiązaniach, aby zaoszczędzić czas na wypróbowaniu wszystkich odpowiedzi. Skorzystaj z tego rozwiązania! Edytuj swój .vimrci wstaw w nim następujący wpis:nnoremap <silent> <Esc><Esc> :let @/=""<CR>
user1336087,
Ale tak mówi Oo. Może mógłbyś głosować?
Pablo Olmos de Aguilera C.
Popieram twoje rozwiązanie ... To jest najlepsze IMO ... I też go głosowałem .. :)
user1336087 11.08.16
1
Wyczyszczenie rejestru wyszukiwania za @/=""pomocą powoduje, że nnie działa, aby odzyskać wyszukiwanie. Wolę, aby :nohzachować poprzednie wyszukiwanie w rejestrze do ponownego użycia.
jbyler
11

Aby wyłączyć podświetlanie do następnego wyszukiwania

:noh

Ilustracja wizualna

arcseldon
źródło
10

Jeśli masz zainstalowaną wtyczkę incsearch.vim , istnieje ustawienie automatycznego usuwania podświetlenia po wyszukiwaniu:

let g:incsearch#auto_nohlsearch = 1

wprowadź opis zdjęcia tutaj

Deqing
źródło
8

Janus dla VIM i GVIM ma wiele upieczonych rzeczy dla newbów takich jak ja, w tym

<leader>hs - toggles highlight search

dokładnie tego potrzebujesz. Wystarczy wpisać \hsw trybie normalnym. (Klucz lidera jest odwzorowany na\ Domyślnie ).

HTH.

Paul-Sebastian Manole
źródło
7

W tym celu dostępne są dwie wtyczki „must have”:

  1. rozsądny -Ctrl-l dla nohlsearch i przerysowania ekranu.
  2. unimpared - [oh, ]oha cohdo sterowania hlsearch.
dkiyatkin
źródło
unimpaired zmienił cosię yona v2, więc tak jest yoh. Zobacz github.com/tpope/vim-unimpaired/blob/v2.0/doc/unimpaired.txt i github.com/tpope/vim-unimpaired/issues/150
myrdd
cohnadal działa, chociaż pojawia się komunikat sugerujący użycie, yohjeśli używaszcoh
avinashkrsharma
7

Wyłącz podświetlenie, gdy tylko poruszysz kursorem:

Zainstaluj vim-cool . Został stworzony, aby rozwiązać ten konkretny problem. Wyłącza podświetlanie, gdy tylko przesuniesz kursor. Ostrzegamy jednak, że wymaga najnowszej wersji vima!

00prometeusz
źródło
6

Spowoduje to wyczyszczenie podświetlenia wyszukiwania po updatetimemilisekundach braku aktywności.

updatetimedomyślnie 4000ms lub 4s, ale ustawiłem mój na 10s. Ważne jest, aby pamiętać, że updatetimerobi to więcej niż tylko to, dlatego przeczytaj dokumentację przed zmianą.

function! SearchHlClear()
    let @/ = ''
endfunction
augroup searchhighlight
    autocmd!
    autocmd CursorHold,CursorHoldI * call SearchHlClear()
augroup END
Kevin Cox
źródło
6

Jeśli chcesz mieć możliwość szybkiego włączania / wyłączania podświetlania , możesz zmapować klucz

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

Po prostu włóż powyższy fragment do pliku .vimrc.

To najwygodniejszy sposób dla mnie, aby pokazać i ukryć wyróżnienie wyszukiwania za pomocą pojedynczego naciśnięcia klawisza

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches

Amaynut
źródło
5

Jeszcze jedno rozwiązanie, łącząc 2 najlepsze odpowiedzi:

"To clear the last used search pattern:
nnoremap <F3> :let @/ = ""<CR>
skywinder
źródło
Wyczyszczenie rejestru wyszukiwania za @/=""pomocą powoduje, że nnie działa, aby odzyskać wyszukiwanie. Wolę, aby :nohzachować poprzednie wyszukiwanie w rejestrze do ponownego użycia. Możesz się <F3>z tym powiązać za pomocąnnoremap <F3> :noh<CR>
jbyler
4

Po prostu używam poniższego prostego nohl i nie są potrzebne żadne wtyczki.

:nohl

Stryker
źródło
4

Domyślam się, że pierwotne pytanie dotyczyło nie wyłączania podświetlania wyszukiwania, ale po prostu usuwania podświetlenia z ostatniego wyszukiwania. Rozwiązanie szukania bełkotliwego sznurka, o którym wspominał oryginalny plakat, jest tym, z którego korzystałem od jakiegoś czasu, aby wyczyścić wyróżnienia z poprzedniego wyszukiwania, ale jest brzydkie i kłopotliwe.

Kilka sugestii, które znalazłem w nnoremap ...~ / .vimrc, skutkuje wprowadzeniem vima w tryb zastępowania podczas uruchamiania, co wcale nie jest tym, czego chcę. Najprostszym rozwiązaniem, jakie znalazłem, jest dodanie linii

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

do mojego ~ / .vimrc. Jest to zgodne z zasadą KISS i nie koliduje z klawiszami strzałek, co robi pojedyncze użycie <esc>. Podwójny <esc> jest wymagany w trybie poleceń (lub trzykrotny <esc> z trybu wstawiania lub zastępowania), aby wyczyścić podświetlanie z poprzedniego wyszukiwania, ale z perspektywy interfejsu użytkownika sprawia, że ​​operacja jest tak prosta, jak to możliwe.

Lindsay Haisley
źródło
Co rozumiesz przez pojedyncze <esc> ingerujące w klawisze strzałek?
hansmosh
1
@hansmosh Patrz unix.stackexchange.com/questions/28713/ ... Używam dwóch linii w moim .vimrc w następujący sposób nmap <esc><esc> :noh<return> - to turn off search highlighting and nmap <esc>` :set hlsearch<return> - to turn on search highlighting
Lindsay Haisley
4

Używam następujących w moim ~/.vimrc

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

Dzięki temu bardzo łatwo i szybko można wyczyścić bieżące wyróżnione wyszukiwanie. Mój klawisz lidera jest przypisany do mapy, \dzięki czemu operacja jest bardzo łatwa do wykonania za pomocą mojego prawego różowego palca i kciuka.

John Slavick
źródło
3

Myślę, że miksowanie @ShaunBouckaert i Mar 19 '09 o 16:22 to dobry kompromis:

" Reset highlighted search
nnoremap <CR> :let @/=""<CR><CR>

Naciśnij, Entera podświetlony tekst nie jest już podświetlony, a podświetlanie wyszukiwania jest nadal włączone.

Ekans
źródło
3

możesz użyć : noremap, aby włączyć / wyłączyć wynik wyszukiwania, w ten sposób

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

caopeng
źródło
3

W oparciu o odpowiedź @ baruch-even, możesz usunąć wyszukiwane hasło po ESCdwukrotnym naciśnięciu w trybie normalnym za pomocą:

nnoremap <esc> :let @/ = ""<return><esc>
nnoremap <esc>^[ <esc>^[
dinigo
źródło
Myślę, że drugie wiązanie jest OK, ale pierwsze jest niebezpieczne. Ponowne mapowanie <esc>działa dobrze w GUI vim, ale powoduje poważne problemy z klawiszami strzałek i innymi kluczami zakodowanymi w ESC podczas uruchamiania vima w terminalu. Nie należy umieszczać go w ~/.vimrc bez zawijania w if has('gui_running')... end. Zastanów się również nad dodaniem tego, <silent>co pozwala uniknąć flashowania :nohpolecenia na pasku stanu.
jbyler
1

Też mi się nie podoba. Ciągłe wchodzenie w grę było dla mnie męczące :nohl... więc umieściłem w nim następujące mapowanie.vimrc

noremap <C-_> :nohl<cr>:<backspace>

Pierwszy bit ( :nohl<cr>) usuwa podświetlenie; drugi bit ( :<backspace>) to podstęp do wyczyszczenia linii poleceń. Wyszukiwanie jest nadal w tle, więc jeśli po prostu klikniesz n, ponownie je podświetli i zabierze Cię do następnego wystąpienia.

Ricardo
źródło
1

Dodałem to do mojego vimrcpliku.

command! H let @/=""

Po zakończeniu wyszukiwania i chcesz usunąć zaznaczenia z wyszukiwania, po prostu zrób :H

piksel 67
źródło
1

Alternatywnie możesz dodać mapowanie do pliku .vimrc jako,

nmap <C-N>: nohlsearch

a następnie możesz nacisnąć

Ctrl + N

w dowolnym momencie, aby usunąć podświetlony tekst

Lew
źródło
Proszę edytować swoje odpowiedzi, aby zapewnić, że poprawia po innych odpowiedzi już obecnych w tej kwestii.
hongsy