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




하이라이트 word (25)

Vim에서 검색을 한 후에 나는 모든 사건을 강조 표시했다. 어떻게 비활성화 할 수 있습니까? 나는 지금 찾을 수없는 무언가를 찾는다.

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


Answers

vim-cool 설치하십시오. 이 특정 문제를 해결하기 위해 만들어졌습니다. 커서를 움직이면 강조 표시가 꺼집니다. 그래도 최근 vim 버전이 필요하다는 경고를받습니다!


내 방식 : / aaaaaaa와 같은 존재하지 않는 단어를 검색하고 조용한 세상은 즉시 ~


이것은 updatetime 밀리 세컨드의 비 활동 후 검색 하이라이트를 클리어합니다.

updatetime 기본값은 4000ms 또는 4s이지만 10 updatetime 설정됩니다. updatetime 이상을 수행하므로 변경하기 전에 문서를 읽어야합니다.

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

내 생각 엔 원래의 질문은 검색 강조 표시를 비활성화하는 것이 아니라 마지막 검색에서 강조 표시를 지우는 것입니다. 원래 포스터가 언급 한 횡설수설하는 줄을 찾는 해결책은 이전 검색에서 강조 표시를 지우기 위해 얼마 동안 사용해 왔지만 추악하고 성가시다.

nnoremap ... ~ .vimrc에 nnoremap ... 을 추가하면 몇 가지 제안이 nnoremap ... 때 vim을 대체 모드로 바꾸는 효과가 있습니다. 내가 찾은 가장 간단한 해결책은

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

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


나는 그것도 싫어한다. 나는 그것을 입력하는 것이 :nohl 것을 발견했다 :nohl 항상 ... 그래서 나는 다음 맵핑을 .vimrc 에 넣었다.

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

첫 번째 비트 ( :nohl<cr> )는 강조 표시를 지 웁니다. 두 번째 비트 ( :<backspace> )는 명령 행을 정리 하는 트릭입니다. 검색은 백그라운드에서 계속 수행되므로 n 을 누르면 간단히 강조 표시되고 다음 발생으로 이동합니다.


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

그렇게하면 내가 명령 행에 표시된 :noh 가 검색 후 Enter 를 치면 제거된다.

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


.vimrc 파일 (다른 설치에서는 사용되지 않음)에 프로그램 된 일부 키맵에 의존하는 대신 다음 해킹을 사용하십시오.

/asdfsddsdf

가능성이없는 문자 시퀀스를 검색합니다 (홈 행의 키를 매시).

/;alskdjf;

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

:let @/ = ""

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


다음 검색 때까지 ​​강조 표시를 해제하려면

:noh


몇 년 전에 vim.org에서이 해답을 발견했습니다.

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

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

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


영구적으로 검색 강조 표시 사용 중지

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

:set nohlsearch

다음 검색 때까지 ​​강조 표시 지우기

:noh

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

ESC 키 를 누르면 강조 표시 지우기

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

다른 키 또는 사용자 정의지도를 누르면 강조 표시 지우기

  • \ (백 슬래시)를 누르면 강조 표시가 지워집니다.

    nnoremap \ :noh<return>
    
  • ESC를 두 번 치는 것에 대한 명확한 하이라이트

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

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

:nohl


내 .vimrc.local 파일에서 빠르고 재클 립되었지만 매우 기능적이었습니다.

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

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

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

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


나는 @ShaunBouckaert와 Mar 19 '09의 16:22 답변을 혼합하는 것이 좋은 타협이라고 생각한다.

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

Enter 키를 누르면 강조 표시된 텍스트가 더 이상 강조 표시되지 않고 검색 강조 표시가 계속 사용됩니다.


다음과 같이 사용할 수 있습니다 : noremap 을 사용하여 검색 결과를 켜거나 끕니다.

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


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

:noh

또는 강조 표시를 완전히 해제하십시오.

set nohlsearch

또는 전환하려면 다음 단계를 따르세요.

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>

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


제안 답변 :nohlsearch 또는 :nohlsearch (예 : Matt McMinn 's)는 원래 질문에서와 같이 검색 강조 표시를 일시적으로 사용 하지 않도록 설정하는 것이 옳습니다.

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

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

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

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

주의 : noremapmap 대신에 map 으로 사용된다면 매핑은 재귀적일 것이다.

팁 : 대개 Caps LockCtrl 키로 다시 매핑하면 키 조합을 쉽게 입력 할 수 있습니다. 이 작업에 대한 세부 사항은 OS / 윈도우 시스템의 선택에 달려있다. 다음 팁에는 Caps LockCtrl 로 매핑하고 Esc 를 매핑하는 방법에 대한 정보가 포함되어 있습니다.


@ baruch-even answer를 기반으로, 다음과 함께 일반 모드에서 ESC 이중 누름에서 검색어를 삭제할 수 있습니다.

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

VIM과 GVIM위한 Janus는 나와 같은 초보자 를위한 많은 굽는 물건을 가지고 있습니다.

<leader>hs - toggles highlight search

그것은 정확히 당신이 필요로하는 것입니다. \hs 를 일반 모드로 입력하기 만하면됩니다. 리더 키는 기본적으로 \ 에 매핑됩니다.

HTH.


강조 표시를 빠르게 활성화 / 비활성화 할 수있게하려면 키를

" 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 문서를 확인하십시오.



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

let g:incsearch#auto_nohlsearch = 1


이것은 Vim을 빠져 나올 최악의 시나리오에 대한 것입니다. 만약 당신이하고 싶었던 일이 무엇인지, 당신이 열어 둔 파일에 어떤 일이 생길지 신경 쓰지 않는다면.

Ctrl-c Enter vi 입력 Ctrl- \ Ctrl-n :qa! 들어가다

이것은 대부분의 시간을 꺼내야합니다.

다음과 같은 경우가 필요한 몇 가지 흥미로운 사례가 있습니다.

  • Ctrl-o vg (삽입 모드를 입력 한 다음 시각적 모드와 운영자 보류 모드로 전환)

  • Qappend Enter

  • i Ctrl-o gQ Ctrl-r = Ctrl-k (이 경우 porges 덕분에)

  • :set insertmode ( Ctrl- \ Ctrl-n을 누르면 정상 모드로 돌아갑니다)

수정 :이 답변은 위의 경우로 인해 수정되었습니다. 이전에는 :

Esc Esc Esc :qa! 들어가다

그러나 Ex 모드로 전환 한 경우에는 작동하지 않습니다. 이 경우 다음을 수행해야합니다.

vi 입력 :qa! 들어가다

그래서 "나는 내가 한 일을 알고 싶지 않고 아무 것도 구하지 않으려 고하고 싶다. 나는 지금 당장 나가고 싶다!"라는 완전한 명령을 내렸다. ~ 될거야.

vi Enter Esc Esc Esc :qa! 들어가다





vim highlight