Vim Wyczyść podświetlanie ostatniego wyszukiwania

Po wykonaniu wyszukiwania w Vimie, wszystkie zdarzenia są zaznaczone. Jak mogę to wyłączyć? Teraz robię kolejne poszukiwania czegoś bełkotliwego, czego nie można znaleźć.

Czy istnieje sposób na tymczasowe wyłączenie podświetlenia, a następnie ponowne włączenie go w razie potrzeby?

 1632
Author: FrankS101, 2009-03-18

30 answers

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

:noh

Lub całkowicie wyłączyć podświetlanie:

set nohlsearch

Lub, aby go przełączyć:

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>
 1316
Author: Mykola Golubyev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-16 22:21:04

Z dokumentacji VIM

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

:let @/ = ""

To nie ustawi wzorca na pusty łańcuch, ponieważ pasowałby wszędzie. Wzór jest naprawdę wyczyszczony, jak przy uruchamianiu Vima.

 648
Author: Shaun Bouckaert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-14 01:13:01

You can do

:noh

Lub :nohlsearch aby tymczasowo wyłączyć podświetlanie wyszukiwania do następnego wyszukiwania.

 559
Author: Matt McMinn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-29 22:15:26

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

Dodaj do swojego .vimrc:

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

Tak więc, po przeszukiwaniu, po prostu naciśnij return ponownie w trybie komend, a podświetlenie zniknie.

 273
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-19 16:22:09

Z 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 do klucza escape ponieważ vim wewnętrznie używa escape do reprezentowania specjalnych kluczy.

 132
Author: Baruch Even,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:59

Wyszukaj nieprawdopodobną sekwencję znaków (wymasuj klawisze w wierszu głównym):

/;alskdjf;

To działa w vim i less, i łatwiej jest zapamiętać / wpisać niż logicznie czystsze rozwiązanie @ShaunBouckaert "wyczyścić ostatnio użyty wzorzec wyszukiwania":

:let @/ = ""

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

 36
Author: millerdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-17 15:38:09

Remaped to In my .vimrc.plik lokalny, szybki i brudny, ale bardzo funkcjonalny:

" Clear last search highlighting
map <Space> :noh<cr>
 30
Author: avocade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-23 19:48:21
nnoremap <cr> :noh<CR><CR>:<backspace>

W ten sposób pozbywam się :noh pokazanego w wierszu poleceń, po naciśnięciu enter po wyszukiwaniu.

: to jak rozpoczęcie wprowadzania nowego polecenia, Backspace czyści je i umieszcza fokus z powrotem w oknie edytora.

 27
Author: sjas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-09 19:04:32

Generalnie mapuję :noh do klawisza backslash. Aby ponownie podświetlić, po prostu naciśnij n, a podświetli ponownie.

 25
Author: caveman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-08 15:58:00

Odpowiedzi proponujące :noh lub :nohlsearch (na przykład, Matt McMinn' S) są poprawne dla tymczasowo wyłączanie podświetlania wyszukiwania – jak zadano w oryginalnym pytaniu.

Pomyślałem, że dodam mapowanie, które uważam za przydatne w trybie normalnym:

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

Domyślnie, CtrlL W Vim czyści i przerysowuje ekran. Wiele programów wiersza poleceń (głównie te, które używają GNU Readline library, takie jak Bash) używają tej samej kombinacji klawiszy, aby oczyść ekran. Ta funkcja jest przydatna w sytuacji, gdy proces działający w tle drukuje do terminala, nadpisując części procesu pierwszoplanowego.

To mapowanie w trybie normalnym usuwa również podświetlenie ostatniego szukanego hasła przed przerysowaniem ekranu. Uważam, że te dwie funkcje wzajemnie się uzupełniają i wygodnie jest użyć jednego CtrlL dla obu działań razem, zamiast tworzyć oddzielne mapowanie w celu wyłączenia wyszukiwania podświetlenie.

NB: noremap jest używany zamiast map, ponieważ w przeciwnym razie mapowanie byłoby rekurencyjne.

Wskazówka: Zwykle zmieniam Caps Lock na Ctrl , aby ułatwić wpisywanie takich kombinacji klawiszy; szczegóły tego działania zależą od Twojego wyboru systemu OS / windowing (i są Poza tematem dla tej odpowiedzi). Obie poniższe wskazówki zawierają informacje na temat mapowania Caps Lock do Ctrl oraz Esc :

 24
Author: Anthony Geoghegan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-09 11:39:27

Wyłącz stałe podświetlanie wyszukiwania

Dopasowania nie będą podświetlane za każdym razem, gdy wykonasz wyszukiwanie za pomocą /

:set nohlsearch

Wyczyść podświetlenie do następnego Wyszukiwania

:noh

Lub :nohlsearch (czyści do momentu naciśnięcia n lub N)


Wyraźne podświetlenie na tłoczeniu ESC

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

Wyczyść podświetlenie po naciśnięciu innego klawisza lub niestandardowej mapy

  • Wyczyść pasemka na tłoczeniu \ (backslash)

    nnoremap \ :noh<return>
    
  • Wyczyść pasemka przy uderzeniu ESC dwa razy

    nnoremap <esc><esc> :noh<return>
    
 21
Author: Sheharyar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-07 07:08:40

To jest to, czego używam (wydobyte z wielu różnych pytań/odpowiedzi):

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

Za pomocą "double" Esc usuwasz podświetlenie, ale gdy tylko ponownie wyszukasz, podświetlenie pojawia się ponownie.


Inna alternatywa:

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

Zgodnie z dokumentacją vim:

Clearmatches ()

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

    |:match| commands.
 14
Author: Pablo Olmos de Aguilera C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-29 22:38:10

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

:noh

Ilustracja Wizualna

 9
Author: arcseldon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-31 22:54:09

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

<leader>hs - toggles highlight search
Dokładnie tego potrzebujesz. Po prostu wpisz \hs w trybie normalnym. (Klucz leader jest domyślnie mapowany na \.)

HTH.

 8
Author: brokenthorn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-08 15:56:52

Jeśli masz incsearch.vim plugin zainstalowany, wtedy jest ustawienie automatycznego wyczyszczenia podświetlenia po wyszukaniu:

let g:incsearch#auto_nohlsearch = 1

Tutaj wpisz opis obrazka

 7
Author: Deqing,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-09 06:46:04

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

updatetime domyślnie 4000ms lub 4s, ale ja ustawiłem mój na 10s. ważne jest, aby pamiętać, że updatetime robi więcej niż tylko to, więc przeczytaj dokumenty przed zmianą.

function! SearchHlClear()
    let @/ = ''
endfunction
augroup searchhighlight
    autocmd!
    autocmd CursorHold,CursorHoldI * call SearchHlClear()
augroup END
 6
Author: Kevin Cox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-08 15:52:58

Jeśli chcesz być w stanie włączyć/wyłączyć podświetlanie szybko , możesz zmapować klucz do

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

Wystarczy umieścić powyższy fragment w sobie .plik vimrc.

To najwygodniejszy sposób dla mnie, aby pokazać i ukryć podświetlenie wyszukiwania za pomocą naciśnięcia klawisza sing

Więcej informacji znajduje się w dokumentacji http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches

 6
Author: Amaynut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-30 13:04:37

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

"To clear the last used search pattern:
nnoremap <F3> :let @/ = ""<CR>
 5
Author: skywinder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-03 21:44:10

Są do tego dwie wtyczki "must have":

  1. sensible - Ctrl-l do nohlsearch i ponownego rysowania ekranu.
  2. - [oh, ]oh i coh do kontrolowania hlsearch.
 5
Author: dkiyatkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-14 08:16:20

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

:nohl

 4
Author: Stryker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-28 13:45:37

Domyślam się, że pierwotne pytanie nie dotyczyło wyłączenia podświetlania wyszukiwania, ale po prostu wyczyszczenia podświetlenia z ostatniego wyszukiwania. Rozwiązanie szukania bełkotliwego sznurka, o którym wspomniał oryginalny plakat, jest takie, którego używam od jakiegoś czasu, aby wyczyścić podświetlenie z poprzedniego wyszukiwania, ale jest brzydkie i uciążliwe.

Kilka propozycji, które znalazłem, aby dodać nnoremap ... do~/.vimrc mają tutaj efekt wprowadzenia Vima w tryb zamiany przy starcie, który wcale tego nie 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 przy użyciu pojedynczego robi. W trybie komend wymagane jest podwójne- (lub potrójne- z trybu wstawiania lub zamiany), aby wyczyścić podświetlenie z poprzedniego wyszukiwania, ale z punktu widzenia interfejsu sprawia to, że operacja jest tak prosta, jak to możliwe.

 4
Author: Lindsay Haisley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-07 18:29:53

W moim ~/.vimrc

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

To sprawia, że bardzo łatwo i szybko wyczyścić obecne podświetlone wyszukiwanie. Mój klucz lidera jest odwzorowany na \, dzięki czemu akcja jest bardzo łatwa do wykonania prawym palcem i kciukiem.

 4
Author: John Slavick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-07 21:24:24

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

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

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

 3
Author: Ekans,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-08 15:51:18

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

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

 3
Author: caopeng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-09 06:06:23

Na podstawie @baruch-even answer, możesz usunąć wyszukiwaną frazę w ESC Naciśnij dwukrotnie w trybie normal z:

nnoremap <esc> :let @/ = ""<return><esc>
nnoremap <esc>^[ <esc>^[
 3
Author: dinigo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-02 11:43:22

Lubię mapować esc do komendy :noh następująco:

map <esc> :noh<cr>

Napisałem niedawno cały artykuł o vim search: Jak wyszukiwać na Vimie vanilla i najlepszą wtyczkę do ulepszania funkcji wyszukiwania.

 3
Author: Matthieu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-26 08:11:21

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

 2
Author: 00prometheus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-19 20:08:02

Zamiast polegać na jakiejś klawiaturze zaprogramowanej w Twoim .plik vimrc (który nie trzyma się dla innych instalacji), wystarczy użyć tego hacka: re-search for something improbable:

/asdfsddsdf
 0
Author: TheBigAmbiguous,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-26 19:32:10

Też mi się to nie podoba. Męczy mnie ciągłe wchodzenie ... więc w moim .vimrc

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

Pierwszy bit (:nohl<cr>) czyści podświetlenie; drugi bit (:<backspace>) jest sztuczką pozwalającąwyczyścić wiersz poleceń. Wyszukiwanie jest nadal w tle, więc jeśli po prostu naciśniesz n, ponownie podświetli i przeniesie Cię do następnego wystąpienia.

 0
Author: ricardo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-07 01:39:14

My way: wyszukaj dowolne nieistniejące słowo, np. / aaaaaaa, a świat od razu cichy~

 -2
Author: Hervey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-27 14:52:18