IT박스

텍스트 검색 후 Vim의 하이라이트 제거

itboxs 2020. 10. 23. 07:42
반응형

텍스트 검색 후 Vim의 하이라이트 제거


VIM에서 "/"명령으로 텍스트를 찾은 후 해당 텍스트는 강조 표시됩니다.

그것을 제거하는 명령은 무엇입니까? 강조 표시 기능을 전혀 제거하고 싶지는 않지만 필요한 것을 찾은 후에는 밝은 텍스트 스팟을 모두 갖고 싶지는 않습니다.

감사.


이것을 입력하십시오 :

:noh

당신은 그것을 토글 할 수 있습니다

:set hls!

물론 빠르고 더러운 대안은 횡설수설에 대한 또 다른 검색을 수행하는 것입니다.

/asdsad

나는 보통 :set hls!이것을 쉽게하기 위해 키를 바인딩하고 내 프로필이 설치되지 않은 어떤 컴퓨터에서 vim에있을 때 횡설수설 방식을 사용한다.


나는 게으르고 /asdf를 때리는 것과 같은 것을 입력 RETURN합니다.


검색 하이라이트를 완전히 비활성화

:set nohlsearch

다음 검색까지 지우기

:nohlsearch

또는 :noh짧게. 새 검색을 수행하거나 때까지 하이라이트를 삭제 n하거나 N누를 때


사용자 지정지도를 누르면 지우기

  • ESC키를 눌렀을 때 명확한 하이라이트

    nnoremap <esc> :noh<return><esc>
    
  • \(백 슬래시) 두 번 누르면 하이라이트 지우기

    nnoremap \\ :noh<return>
    

내 .vimrc에 다음이 있습니다.

map <leader>h :set hlsearch!<cr>

그래서 내가 입력 할 때 :

\h

강조 표시를 켜거나 끕니다.


강조 표시를 제거하지 않으려면 당연히 나중에 검색 항목이 필요하지 않는 한 검색 레지스터를 지우는 것이 가장 좋은 방법 중 하나입니다. 이렇게하면 강조 표시를 다시 활성화 할 필요가 없으며 (편집 : noh강조 표시를 영구적으로 비활성화하지 않음) 실수로 뛰어 다니는 것을 방지 할 수 있습니다. 이것이 내 설정 방법입니다.

nmap <silent> ,/ :let@/=""<CR>

이것이하는 일은 ,/일반 모드에서 키 시퀀스 매핑하여 검색 레지스터 @/를 빈 문자열로 설정 하여 지우는 것 입니다. 이것은 이미 언급 된 것에 대한 대안 일뿐입니다.


:noh 강조 표시된 텍스트를 제거합니다.


"검색 레지스터 지우기"외에도 검색 레지스터를 이전 값으로 재설정 할 수도 있습니다.

command! -nargs=* -range S
\ let atslash=@/|exe ':'.<line1>.','.<line2>.'s'.<q-args>|let @/=atslash

그러나 :
-이것은의 이전 상태를 재설정하지 않습니다 :hls. 나는 이것이 일반적으로 가능하다고 믿지 않는다.
-이것은 :S대신 사용할 새 명령을 정의합니다 :s. 를 사용 cabbrev하여 서로 매핑 할 수 있지만 대체 명령에 범위를 추가하면 중단됩니다.

참고 URL : https://stackoverflow.com/questions/4372660/get-rid-of-vims-highlight-after-searching-text

반응형