답변:
Quincy의 대답은 훌륭하지만 버퍼를 편집 할 필요가없는 정확한 방법이 있습니다.
:%s/pattern//ng
그러면 같은 메시지가 인쇄되고 3 matches on 2 lines
버퍼가 변경되지 않습니다.
n
플래그하게 :substitute
명령 실제 교체를 수행하는 대신 일치의 숫자를 인쇄; 이 g
플래그를 사용하면 한 줄에 여러 개의 일치 항목을보고 할 수 있습니다.
사용 사례에 유용한 또 다른 것은 패턴과 일치하는 모든 줄을 인쇄하는 것입니다.
:global/pattern/print
단축 할 수 있습니다 :
:g/pattern
이것은 :global
명령을 가장 간단하게 사용하는 것 중 하나입니다 (정말 놀라 울 정도로 강력 함). 단순히 일치하는 모든 행을 인쇄 pattern
한 다음 (둘 이상의 행이있는 경우) Enter
다른 명령을 누르 거나 입력하여 사라지게합니다.
약간의 사소한 표현 :이 명령은 grep
일반적으로로 설명되는 것처럼 name의 원점입니다. g/re/p
여기서 re
"정규 표현식"을 나타냅니다.
g/re/p
은 실제로 ed
아닙니다 vi
. Grep은 2 년 전에 vi보다 먼저 사용됩니다.
nnoremap <leader>n :%s///gn<CR>
매핑. <leader>n
이전에 검색 한 패턴의 발생 횟수를 세려면 누릅니다 . 나는 이것을 놀랍게도 자주 사용합니다.
:%s/pattern//n
n
끝에 있는 플래그는 :s
명령에 지시 하여 일치 수를보고하지만 실제로 대체하지는 않습니다. :h :s_flags
자세한 내용을 읽으십시오 .
gn
않습니까?
g
이지만 한 줄에 둘 이상의 일치 항목이 있다고 생각되면 사용하고 싶을 때가 종종 있습니다. 그러나 문제의 목적을 위해 깃발 n
이 더 중요합니다.
이 PR https://github.com/vim/vim/pull/4317 덕분에 각 검색 명령은 vim 8.1.1270의 검색 통계 (현재 일치 위치 및 일치 횟수 등)를 표시합니다. S
변수에서 제거하십시오 shortmess
.
여기에 대한 답변을 기반으로 .vimrc에 추가 한 매핑 :
" count nr of occurrences of word under cursor
nnoremap <leader>c :%s/<c-r><c-w>//gn<cr>
" count nr of occurrences of visual selection
vnoremap <leader>c :<c-u>%s/<c-r>*//gn<cr>
새로운 비머에 도움이되는 약간의 설명 :
<c-r><c-w>
명령 행에서 커서 아래에 단어를 삽입하여 여러 경우에 편리합니다.
은 <c-u>
자동 삽입을 제거 할 필요 '<,'>
누르면 :
영상 모드 및 명령 줄 것.
*
레지스터는 (최종) 영상 선택을 포함 <c-r>*
의 콘텐츠 삽입 *
(또는 삽입 모드에서 사용될 수있다) 명령 라인 레지스터.
:h count-items