etc./StackOverFlow

Vim은 마지막 검색 강조 표시를 지웁니다.

청렴결백한 만능 재주꾼 2021. 12. 4. 10:39
반응형

질문자 :Gabriel Solomon


Vim에서 검색을 수행하면 모든 항목이 강조 표시됩니다. 어떻게 비활성화할 수 있습니까? 나는 이제 찾을 수 없는 횡설수설한 무언가를 찾기 위해 또 다른 검색을 합니다.

하이라이트를 일시적으로 비활성화한 다음 필요할 때 다시 활성화하는 방법이 있습니까?



다음 검색까지 강조 표시를 끄려면:

 :noh

또는 강조 표시를 완전히 끕니다.

 set nohlsearch

또는 토글하려면:

 set hlsearch! nnoremap <F3> :set hlsearch!<CR>

Mykola Golubyev

VIM 문서에서

마지막으로 사용한 검색 패턴을 지우려면:

 :let @/ = ""

모든 곳에서 일치하므로 패턴을 빈 문자열로 설정하지 않습니다. Vim을 시작할 때와 같이 패턴이 정말 지워집니다.


Shaun Bouckaert

넌 할 수있어

 :noh

또는 :nohlsearch 를 사용하여 다음 검색까지 검색 강조 표시를 일시적으로 비활성화합니다.


Matt McMinn

몇 년 전에 vim.org에서 이 답변을 찾았습니다.

.vimrc에 다음을 추가합니다.

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

따라서 검색 후 명령 모드에서 다시 return 키를 누르면 강조 표시가 사라집니다.




http://twitter.com/jonbho/status/2194406821에서

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

Vim은 내부적으로 특수 키를 나타내기 위해 이스케이프를 사용 하기 때문에 이스케이프 키 에 매핑하려면 두 번째 줄이 필요합니다.


Baruch Even

내 원래 솔루션(아래)은 더럽고 낭비적이었습니다. 나는 지금 사용한다 :noh

Vim의 많은 기능과 마찬가지로 올바른 방법을 찾기가 쉽지 않은 경우가 많습니다.

--

(하지마세요)

가능성이 없는 문자 시퀀스 검색(홈 행의 키 매쉬):

/;alskdjf;

이것은 vim 이하에서 작동하며 @ShaunBouckaert의 "마지막으로 사용한 검색 패턴을 지우기 위한" 논리적으로 더 깨끗한 솔루션보다 기억/입력하기가 더 쉽습니다.

:let @/ = ""

잠재적인 단점은 검색 기록에 정크를 추가한다는 것입니다.


millerdev

내 .vimrc.local 파일에 다시 매핑하여 빠르고 더럽지만 매우 기능적입니다.

 " Clear last search highlighting map <Space> :noh<cr>

avocade

nnoremap <cr> :noh<CR><CR>:<backspace>

그런 식으로 검색 후 Enter 키를 누르면 명령줄에 표시되는 :noh

: 새 명령을 입력하기 시작하는 것과 같습니다. 백스페이스는 명령을 지우고 포커스를 다시 편집기 창에 둡니다.


sjas

제안한 답변 :noh:nohlsearch (예를 들어, 매트 McMinn의)는 일시적으로 검색 강조 표시를 비활성화에 적합한 - 원래의 질문에 질문한다.

일반 모드에서 유용하다고 생각되는 매핑을 제공할 것이라고 생각했습니다.

 nnoremap <CL> :nohlsearch<CR><CL>

기본적 으로 Vim의 Ctrl L 은 화면을 지우고 다시 그립니다. 많은 명령줄 프로그램(대부분 Bash와 같은 GNU Readline 라이브러리를 사용하는 프로그램)은 동일한 키 조합을 사용하여 화면을 지웁니다. 이 기능은 백그라운드에서 실행 중인 프로세스가 터미널에 인쇄하여 전경 프로세스의 일부를 덮어쓰는 상황에서 유용합니다.

이 일반 모드 매핑은 또한 화면을 다시 그리기 전에 가장 최근 검색어의 강조 표시를 지웁니다. 두 기능이 서로를 보완하고 검색 강조 표시를 비활성화하기 위해 별도의 매핑을 만드는 것보다 두 작업에 하나의 Ctrl L을 함께 사용하는 것이 편리합니다.

NB가 : noremap 대신 사용되는 map 그렇지 않은 경우로, 매핑은 재귀 될 것이다.

팁: 저는 일반적으로 이러한 키 조합을 더 쉽게 입력할 수 있도록 Caps LockCtrl로 다시 매핑합니다. 이 작업을 수행하기 위한 세부 정보는 선택한 OS/윈도우 시스템에 따라 다릅니다(이 답변에서는 주제에서 벗어남). 다음 두 팁에는 Caps LockCtrl 및 Esc 로 매핑하는 방법에 대한 정보가 포함되어 있습니다.


Anthony Geoghegan

나는 일반적으로 :noh 를 백슬래시 키로 매핑합니다. 강조 표시를 다시 활성화하려면 n 키를 누르면 다시 강조 표시됩니다.


caveman

영구적으로 검색 강조 표시 비활성화

/를 사용하여 검색할 때마다 일치 항목이 강조 표시되지 않습니다.

 :set nohlsearch

다음 검색까지 하이라이트 지우기

 :noh

또는 :nohlsearch (n 또는 N 을 누를 때까지 지워짐)


ESC 를 누르면 하이라이트 지우기

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

다른 키 또는 사용자 지정 맵을 누를 때 강조 표시 지우기

  • \ (백슬래시)를 누르면 하이라이트 지우기

     nnoremap \ :noh<return>
  • ESC를 두 번 누르면 하이라이트 지우기

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

Sheharyar

이것은 내가 사용하는 것입니다(다양한 질문/답변에서 추출).

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

"이중" Esc 를 사용하면 강조 표시가 제거되지만 다시 검색하면 강조 표시가 다시 나타납니다.


또 다른 대안:

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

vim 문서에 따르면 :

클리어 매치()

 Clears all matches previously defined by |matchadd()| and the |:match| commands.

Pablo Olmos de Aguilera C.

다음 검색까지 강조 표시를 끄려면

 :noh

비주얼 일러스트레이션


arcseldon

incsearch.vim 플러그인이 설치되어 있으면 검색 후 강조 표시를 자동으로 지우는 설정이 있습니다.

 let g:incsearch#auto_nohlsearch = 1

여기에 이미지 설명 입력


Deqing

커서를 이동하는 즉시 강조 표시를 끕니다.

vim-cool을 설치합니다. 이 특정 문제를 해결하기 위해 만들어졌습니다. 커서를 이동하는 즉시 강조 표시를 끕니다. 그러나 최신 vim 버전이 필요합니다!


00prometheus

VIM 및 GVIM을 위한 Janus에는 저와 같은 초보자 를 위한 다양한 기능이 포함되어 있습니다.

 <leader>hs - toggles highlight search

이것이 바로 당신이 필요로 하는 것입니다. 일반 모드에서 \hs 를 입력하기만 하면 됩니다. (리더 키는 \ 에 매핑됩니다.)

HTH.


Paul-Sebastian Manole

이를 위한 두 가지 '필수' 플러그인이 있습니다.

  1. sensible - nohlsearch 및 다시 그리기 화면의 경우 Ctrl-l
  2. unimpared - [oh , ]ohcoh 제어 hlsearch한다.

dkiyatkin

이렇게 하면 업데이트 시간(밀리초) 동안 비활성 상태가 된 후 검색 강조 표시가 updatetime

updatetime 기본값은 4000ms 또는 4s이지만 저는 10s로 설정했습니다. updatetime 은 이것 이상을 수행하므로 변경하기 전에 문서를 읽으십시오.

 function! SearchHlClear() let @/ = '' endfunction augroup searchhighlight autocmd! autocmd CursorHold,CursorHoldI * call SearchHlClear() augroup END

Kevin Cox

강조 표시를 빠르게 활성화/비활성화 하려면 키를 에 매핑할 수 있습니다.

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

위의 스니펫을 .vimrc 파일에 넣으면 됩니다.

그것은 내가 노래 키 스트로크로 검색 하이라이트를 표시하고 숨기는 가장 편리한 방법입니다

자세한 내용은 문서 http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches를 확인하십시오.


Amaynut

내 생각에 원래 질문은 검색 강조 표시를 비활성화하는 것이 아니라 단순히 마지막 검색에서 강조 표시를 지우는 것과 관련된 것입니다. 원래 포스터가 언급한 횡설수설한 문자열을 검색하는 솔루션은 이전 검색에서 강조 표시를 지우기 위해 한동안 사용해왔지만 추하고 번거롭습니다.

nnoremap ... to ~/.vimrc를 추가하기 위해 찾은 몇 가지 제안은 시작 시 vim을 교체 모드로 전환하는 효과가 있습니다. 이는 내가 원하는 것이 아닙니다. 내가 찾은 가장 간단한 해결책은 줄을 추가하는 것입니다

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

내 ~/.vimrc. 이것은 KISS 원칙을 따르고 단일 <esc>를 사용하는 화살표 키를 방해하지 않습니다. 이전 검색에서 강조 표시를 지우려면 명령 모드에서 이중 <esc>(또는 삽입 또는 바꾸기 모드에서 삼중 <esc>)가 필요하지만 UI 관점에서 이것은 작업을 가능한 한 간단하게 만듭니다.


Lindsay Haisley

2개의 상위 답변을 결합하여 또 하나의 솔루션:

 "To clear the last used search pattern: nnoremap <F3> :let @/ = ""<CR>

skywinder

아래의 간단한 nohl을 사용하고 플러그인이 필요하지 않습니다.

:nohl


Stryker

esc 를 다음과 같이 :noh 명령에 매핑하는 것을 좋아합니다.

map <esc> :noh<cr>

최근 Vim 검색에 대한 전체 기사를 작성 했습니다. 즉, 바닐라 Vim에서 검색하는 방법과 검색 기능을 향상시키는 최고의 플러그인입니다.


Matthieu

~/.vimrc 에서 다음을 사용합니다.

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

이렇게 하면 현재 강조 표시된 검색을 매우 쉽고 빠르게 지울 수 있습니다. 내 리더 키는 \ 매핑되므로 오른쪽 새끼손가락과 엄지손가락으로 작업을 수행하기가 매우 쉽습니다.


John Slavick

@ShaunBouckaert와 2009년 3월 19일 16:22 답변을 혼합하는 것이 좋은 절충안이라고 생각합니다.

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

Enter 키를 누르면 강조 표시된 텍스트가 더 이상 강조 표시되지 않지만 검색 강조 표시는 계속 활성화됩니다.


Ekans

:noremap 을 사용하여 다음과 같이 검색 결과를 켜고 끌 수 있습니다.

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


caopeng

@baruch-even 답변 에 따라 일반 모드에서 다음을 사용하여 ESC를 두 번 누르면 검색어를 삭제할 수 있습니다.

 nnoremap <esc> :let @/ = ""<return><esc> nnoremap <esc>^[ <esc>^[

dinigo

나도 좋아하지 않아. 나는 항상 입력하는 것이 :nohl 것을 알았다 :nohl ... 그래서 나는 내 .vimrc

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

첫 번째 비트( :nohl<cr> )는 강조 표시를 지웁니다. 두 번째 비트( :<backspace> )는 명령줄 을 정리하는 트릭입니다. 검색은 여전히 백그라운드에 있으므로 n 을 누르기만 하면 다시 강조 표시되고 다음 항목으로 이동합니다.


ricardo

이것을 내 vimrc 파일에 추가했습니다.

command! H let @/=""

검색을 수행하고 검색에서 하이라이트를 지우려면 다음을 수행하십시오 :H


pixel 67

nohlsearch의 어떤 솔루션도 선호하지 않습니다. 다음 검색은 어떻습니까? 가장 좋은 대답은 let @/ = ""에 의해 생성되지만 Mac에서는 기능 키로 매핑하는 것을 좋아하지 않으므로 여기에 내 것이 있습니다.

 let mapleader=',' let g:mapleader=',' nnoremap <leader>cs :let @/ = ""<cr>

Cui Mingda

출처 : http:www.stackoverflow.com/questions/657447/vim-clear-last-search-highlighting

반응형