Googleには素敵な機能がありますChrome=検索を実行すると、検索しているキーワードの一致数がわかります。しかし、Vimにはそのような機能はありません機能。一部の人々は%s/pattern//gn
または類似:
http://vim.wikia.com/wiki/Count_number_of_matches_of_a_pattern
Vimでの一致数をカウントできません
しかし、それは本当にかなり長いです!! 「*」、「%」を押すか、「/」と「?」を使用して検索を行ったときの数を探しています。
何か案が?
直接的な方法はわかりませんが、:%s///
が最後の検索をデフォルトのパターンとして使用する方法を利用できます。
:nmap ,c :%s///gn
その後、検索を実行して,c
を押し、一致の数を報告できます。
唯一の問題は、*
と#
が'smartcase'
を無視することです。そのため、*
を使用した後、結果が数回ずれる可能性があります。これを回避するには、*
の後に/
を実行します。UpENTER そして,c
。
@Alの回答への1つの追加:vimにステータスラインに自動的に表示させたい場合は、vimrcに以下を追加してみてください:
let s:prevcountcache=[[], 0]
function! ShowCount()
let key=[@/, b:changedtick]
if s:prevcountcache[0]==#key
return s:prevcountcache[1]
endif
let s:prevcountcache[0]=key
let s:prevcountcache[1]=0
let pos=getpos('.')
try
redir => subscount
silent %s///gne
redir END
let result=matchstr(subscount, '\d\+')
let s:prevcountcache[1]=result
return result
finally
call setpos('.', pos)
endtry
endfunction
set ruler
let &statusline='%{ShowCount()} %<%f %h%m%r%=%-14.(%l,%c%V%) %P'
ここに安価な解決策があります... Vimで[すべて検索と置換]を使用しました。派手なスクリプトはありません。私はXを検索してすべてをXに置き換えました。最後に、Vimは「9892行の2134置換」を報告します。 Xは2134回登場。 :q!を使用してください保存せずにファイルを終了します。大丈夫です。
あなたはすでに十分な答えを持っていますが、この問題にはまだもう1つのアプローチがあるようです。
これは実際、私が数日前に対処しなければならなかったものです。カウントするWordの下にカーソルがあるときにマッピングにヒットし、一致数を返すように、関数とマッピングを追加しました。
関数:
" Count number of occurances of a Word
function Count(Word)
let count_Word = "%s/" . a:Word . "//gn"
execute count_Word
endfunction
そしてマッピング:
" Count current Word
nmap <Leader>w <Esc>:call Count(expand("<cword>"))<CR>
または、@ Alが示唆することから、キーの組み合わせをマップして行の大部分を記述し、実際のパターンが挿入される位置にカーソルを移動することができます。
:nmap、c ^ [:%s /// gn ^ [OD ^ [OD ^ [OD ^ [OD
「^ [」はどこですか Ctrl+ V、Esc そして '^ [OD'は Ctrl+ V、Left
次に、 '、c'を押すとコマンドモードになり、パターンを入力し、カーソルを2番目の '/'の上に置いて、パターンを挿入する準備ができます。
このプラグインはまさにそれを行います。 https://github.com/osyo-manga/vim-anz
Vimで単語を検索すると、ステータスラインに単語数が表示されます。また、検索された単語の隣に表示するオプションもあります。 this_is_my_sample_Word(3/12)、またはthis_is_my_sample_Word(7/12) 。これは基本的に言うと、これは12回のオカレンスのうち3番目または7番目のオカレンスです。
:vim[grep][!] /{pattern}/[g][j] {file} ...
VimgrepはVimの組み込み正規表現検索エンジンを使用するため、Vimの標準の検索コマンドのパターンを再利用できます。したがって、最初に/ {pattern} /を使用して、通常の方法で検索パターンをテストします。
次に、以下を入力します。
:vim /CTRL+r//g %
ここで、CTRL+r/
は、最初のスラッシュの後に最後の検索パターンを挿入します。ステータス行に(1 of max)が表示されます。ここで、maxは{pattern}
の最大一致数です。次に、:cnext
と:cprev
を使用して次と前の一致を検索し、:cfirst
と:clast
を使用して最初と最後の一致を検索します。これらの4つのコマンドは、再実行して実行を高速化できます。