문제

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

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

도움이 되었습니까?

해결책

다음 검색까지 강조 표시 :

:noh

또는 완전히 강조 표시를 끄십시오.

set nohlsearch

또는 그것을 전환하려면 :

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>

다른 팁

로부터 VIM 문서

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

:let @/ = ""

이것은 패턴을 빈 문자로 설정하지 않습니다. 왜냐하면 그것은 어디에서나 일치하기 때문입니다. VIM을 시작할 때와 같이 패턴이 실제로 지워집니다.

넌 할 수있어

:noh

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

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

.vimrc에 다음을 추가하십시오.

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

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

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

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

두 번째 줄은 필요합니다 탈출 키에 매핑 VIM은 내부적으로 탈출을 사용하여 특수 키를 나타냅니다.

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

VIM의 많은 기능과 마찬가지로 올바른 방법은 종종 쉽게 발견 할 수 없습니다.

--

(이것을하지 마십시오)

가능성이없는 캐릭터 시퀀스를 검색합니다 (홈 행에서 키를 매시) :

/;alskdjf;

이것은 VIM에서 작용하며 @Shaunbouckaert의 논리적으로 더 깨끗한 솔루션보다 "마지막으로 사용 된 검색 패턴을 지우는 것"보다 기억하기가 더 쉽습니다.

:let @/ = ""

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

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

그렇게하면 내가 제거합니다 :noh 치기 할 때 명령 선에 표시됩니다 입력하다 검색 후.

: 새로운 명령에 들어가기 시작하는 것과 같습니다. 역행 키이 그것을 지우고 초점을 편집기 창에 다시 넣습니다.

내 .vimrc.local 파일로 다시 연결되어 빠르고 더럽지 만 매우 기능적입니다.

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

제안하는 답변 :noh 또는 :nohlsearch (예 : Matt McMinn 's)는 일시적으로 검색 강조 비활성화 - 원래 질문에서 요청한대로.

나는 정상 모드에서 유용한 매핑에 기여할 것이라고 생각했다.

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

기본적으로, Ctrl 키 VIM에서 화면을 제거하고 다시 그리기합니다. 여러 명령 줄 프로그램 (주로 사용하는 것 GNU READLINE 라이브러리, Bash와 같은,)는 동일한 키 조합을 사용하여 화면을 지우십시오. 이 기능은 백그라운드에서 실행되는 프로세스가 터미널에 인쇄하여 전경 프로세스의 일부를 초과하는 부분에 유용합니다.

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

NB : noremap 보다는 사용됩니다 map 그렇지 않으면 매핑은 재귀 적입니다.

팁: 나는 보통 재발합니다 캡 잠금 에게 Ctrl 키 이러한 키 조합을 쉽게 입력 할 수 있도록; 이를 수행하기위한 세부 사항은 선택한 OS / 윈도우 시스템에 따라 다릅니다 (이 답변에 대한 주제가 아닙니다). 다음 팁에는 매핑에 대한 정보가 포함됩니다 캡 잠금 에게 Ctrl 키 만큼 잘 ESC:

나는 일반적으로 매핑됩니다 :noh 백 슬래시 키로. 강조 표시를 다시 만들기 위해 그냥 누르십시오 N, 그리고 다시 강조 할 것입니다.

검색 강조 표시를 영구적으로 비활성화합니다

당신이 사용하여 검색 할 때마다 일치는 강조되지 않습니다. /

:set nohlsearch

다음 검색까지 하이라이트를 명확하게하십시오

:noh

또는 :nohlsearch (때까지 지우십시오 N 또는 N 눌린다)


프레스에 대한 명확한 하이라이트 ESC

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

다른 키 또는 사용자 정의지도를 누르는 경우 하이라이트를 명확하게하십시오

  • 프레스에 대한 명확한 하이라이트 \ (백 슬래시)

    nnoremap \ :noh<return>
    
  • 타격에 대한 명확한 하이라이트 ESC 두 배

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

이것이 제가 사용하는 것입니다 (많은 다른 질문/답변에서 추출) :

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

"double"으로 ESC 하이라이트를 제거하지만 다시 검색하자마자 강조 표시가 다시 나타납니다.


또 다른 대안 :

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

VIM 문서에 따르면 :

ClearMatches ()

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

    |:match| commands.

다음 검색까지 강조 표시를 끕니다

:noh

Visual Illustration

당신이 가지고 있다면 incsearch.vim 플러그인 설치 한 다음 검색 후 하이라이트를 자동으로 지울 수있는 설정이 있습니다.

let g:incsearch#auto_nohlsearch = 1

enter image description here

VIM 및 GVIM의 야누스 나와 같은 Newbs를위한 많은 구운 것들이 있습니다.

<leader>hs - toggles highlight search

정확히 당신이 필요한 것입니다. 그냥 입력하십시오 \hs 정상 모드에서. (리더 키가 매핑되었습니다 \ 기본적으로.)

HTH.

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

  1. 현명한 - Ctrl-l NohlSearch 및 Redraw 화면의 경우.
  2. 무관심 - [oh, ]oh 그리고 coh hlsearch를 제어합니다.

이렇게하면 검색 하이라이트가 지워집니다 updatetime 비활성의 밀리 초.

updatetime 기본값은 4000ms 또는 4s로 이루어 지지만 광산을 10s로 설정했습니다. 그것을 주목하는 것이 중요합니다 updatetime 이 이상을 수행하므로 문서를 변경하기 전에 문서를 읽으십시오.

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

당신이 할 수 있기를 원한다면 켜기 끄기 강조 표시 빠르게, 당신은 키를 매핑 할 수 있습니다

" 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

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

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

나는지도를 좋아한다 esc 명령에 :noh 다음과 같이:

map <esc> :noh<cr>

나는 최근 VIM 검색에 관한 전체 기사를 썼습니다: 바닐라 VIM 및 검색 기능을 향상시키기위한 최고의 플러그인을 검색하는 방법.

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

:nohl

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

내가 추가 한 몇 가지 제안 nnoremap ... ~/.VIMRC는 여기서 시작시 VIM을 교체 모드에 넣는 데 영향을 미칩니다. 내가 찾은 가장 간단한 솔루션은 라인을 추가하는 것입니다.

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

내 ~/.vimrc에. 이 키스 원리에 대한 휴대u003Cesc> 하다. 이중-u003Cesc> 명령 모드에서 필요합니다 (또는 트리플-u003Cesc> 삽입 또는 교체 모드에서)에서 이전 검색에서 클리어 하이라이트에 이르기까지 UI 관점에서 볼 때 작업은 가능한 한 간단하게 만듭니다.

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

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

따라서 현재 강조 표시된 검색을 쉽고 빠르게 지우게됩니다. 내 리더 키가 매핑되었습니다 \ 따라서 오른쪽 핑키 손가락과 엄지 손가락으로 액션을 매우 쉽게 수행 할 수 있습니다.

@shaunbouckaert와 16:22에 09 년 3 월 19 일 대답을 혼합 한 것 같습니다. 답변은 좋은 타협이라고 생각합니다.

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

누르다 입력하다 강조 표시된 텍스트는 더 이상 강조 표시되지 않으며 검색 강조 표시는 여전히 활성화됩니다.

당신이 사용할 수있는 : Noremap 검색 결과를 켜고 끄려면 이와 같이

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

@baruch-aven 답변을 기반으로 검색어를 삭제할 수 있습니다. ESC 들어있는 동안 더블 프레스 정상 다음과 같은 모드

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

설치 vim-cool. 이 특정 문제를 해결하기 위해 만들어졌습니다. 커서를 이동하자마자 강조 표시가 꺼집니다. 그러나 최근 VIM 버전이 필요합니다!

나도 그것을 좋아하지 않는다.들어가기 귀찮았는데 :nohl 항상 ...그래서 나는 다음 매핑을 내 .vimrc

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

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

나는 이것을 나의 것에 추가했다 vimrc 파일.

command! H let @/=""

검색을 수행하고 검색에서 하이라이트를 지우고 싶으면 :H

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top