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?
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>
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
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.
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.
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.
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.
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.
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>
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.
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.
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 :
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>
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.
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
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.
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
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
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
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>
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":
-
sensible -
Ctrl-l
do nohlsearch i ponownego rysowania ekranu. -
-
[oh
,]oh
icoh
do kontrolowania hlsearch.
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
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
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.
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.
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>
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>^[
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.
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!
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
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.
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~
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