[vim] 선택한 단어를 모두 강조 표시 하시겠습니까?

메모장 ++에서와 같이 GVim에서 선택한 단어를 모두 강조 표시하려면 어떻게해야합니까?



답변

일반 모드에서 :

:set hlsearch

그런 다음 /일반 모드 에서 명령 을 사용하거나 삽입 모드에서 <Ctrl>o뒤에 오는 패턴을 검색 /합니다. *일반 모드에서는 커서 아래에있는 다음 단어를 검색합니다. 이 hlsearch옵션은 설정된 경우 모든 항목을 강조 표시합니다. #단어의 이전 발생을 검색합니다.

이전 검색의 하이라이트를 제거하려면 :

:nohlsearch

:nohlsearch<CR>편리한 키 에 매핑 할 수 있습니다 .


답변

*키는 커서 아래에있는 단어의 모든 항목을 강조 표시됩니다.


답변

나는 그것이 정말 오래된 질문이라는 것을 알고 있지만 누군가이 기능에 관심이 있다면이 코드를 확인할 수 있습니다.
http://vim.wikia.com/wiki/Auto_highlight_current_word_when_idle

" Highlight all instances of word under cursor, when idle.
" Useful when studying strange source code.
" Type z/ to toggle highlighting on/off.
nnoremap z/ :if AutoHighlightToggle()<Bar>set hls<Bar>endif<CR>
function! AutoHighlightToggle()
   let @/ = ''
   if exists('#auto_highlight')
     au! auto_highlight
     augroup! auto_highlight
     setl updatetime=4000
     echo 'Highlight current word: off'
     return 0
  else
    augroup auto_highlight
    au!
    au CursorHold * let @/ = '\V\<'.escape(expand('<cword>'), '\').'\>'
    augroup end
    setl updatetime=500
    echo 'Highlight current word: ON'
  return 1
 endif
endfunction


답변

가장 간단한 방법은 일반 모드로 입력하는 것입니다. *

또한 이러한 매핑을 활성화 및 비활성화 할 수 있습니다.

"highligh search enabled by default
set hlsearch
"now you can toggle it
nnoremap <S-F11> <ESC>:set hls! hls?<cr>
inoremap <S-F11> <C-o>:set hls! hls?<cr>
vnoremap <S-F11> <ESC>:set hls! hls?<cr> <bar> gv

그것을 클릭하여 단어를 선택

set mouse=a     "Enables mouse click
nnoremap <silent> <2-LeftMouse> :let @/='\V\<'.escape(expand('<cword>'), '\').'\>'<cr>:set hls<cr>

보너스 : CountWordFunction

fun! CountWordFunction()
    try
        let l:win_view = winsaveview()
        let l:old_query = getreg('/')
        let var = expand("<cword>")
        exec "%s/" . var . "//gn"
    finally
        call winrestview(l:win_view)
        call setreg('/', l:old_query)
    endtry
endfun
" Bellow we set a command "CountWord" and a mapping to count word
" change as you like it
command! -nargs=0 CountWord :call CountWordFunction()
nnoremap <f3> :CountWord<CR>

마우스로 단어를 선택하고 한 번에 발생 횟수 계산 : OBS :이 버전에서는 끝에 “CountWord”명령이 있습니다.

nnoremap <silent> <2-LeftMouse> :let @/='\V\<'.escape(expand('<cword>'), '\').'\>'<cr>:set hls<cr>:CountWord<cr>


답변

검색 기반 솔루션 ( *, /…)은 커서를 이동합니다. 이는 불행 할 수 있습니다.

대안은 향상된 mark.vim 플러그인 을 사용 .vimrc하여 더블 클릭 트리거 강조 표시 를 완료 하는 것입니다 (키보드 선택이 명령을 트리거하는 방법을 모르겠습니다).

"Use Mark plugin to highlight selected word
map <2-leftmouse> \m

여러 강조 표시, 지속성 등을 허용합니다.

강조 표시를 제거하려면 다음 중 하나를 수행하십시오.

  • 다시 더블 클릭
  • :Mark (다음 선택까지 스위치 끄기)
  • :MarkClear


답변

먼저 (또는 .vimrc에서) :

:set hlsearch

그런 다음 강조 표시하려는 단어 위에 커서를 놓고를 누릅니다 *.

hlsearch현재 검색된 모든 항목을 강조 표시 *하고 커서 아래의 단어 검색을 의미합니다.


답변

먼저 다음 명령을 실행하여 hlsearch가 활성화되었는지 확인하십시오.

:set hlsearch

이것을 .vimrc 파일에 세트로 추가 할 수도 있습니다.

set hlsearch

이제 명령 모드 또는 일반 검색 명령에서 빠른 검색 메커니즘을 사용하면 모든 결과가 강조 표시됩니다. 결과간에 앞으로 이동하려면 ‘n’을 눌러 뒤로 이동하려면 ‘N’을 누릅니다.

일반 모드에서 커서 아래에있는 단어를 빠르게 검색하고 한 명령에서 다음 항목으로 이동하려면 ‘*’를 누르십시오. 커서 아래의 단어를 검색하고 ‘#을 눌러 이전 항목으로 이동할 수도 있습니다. ‘

일반 모드에서 빠른 검색은

/searchterm<Enter>

ocuurences 사용에 대한 하이라이트를 제거하기 위해 이것을 .vimrc의 바로 가기에 바인딩했습니다.

:nohl