web-dev-qa-db-ja.com

文字列を検索し、viエディターでカウントを取得します

文字列を検索し、viエディターを使用してファイル内の出現回数を検索します。

99
kadeshpa
:g/xxxx/d

これにより、パターンのあるすべての行が削除され、削除された行数がレポートされます。元に戻すには元に戻します。

6
Kevin Beck

方法は

:%s/pattern // gn

174
Gustavo

nフラグが必要です。単語を数えるには:

:%s/\i\+/&/gn   

そして特定の単語:

:%s/the/&/gn        

count-items documentationセクションを参照してください。

単に入力する場合:

%s/pattern/pattern/g

ステータス行には、viの一致数も表示されます。

121
dirkgently

:%s/string/string/gが答えを提供します。

38

(グスタボが言ったように似ていますが、さらに:)

以前の検索については、簡単に実行できます。

:%s///gn

パターンは既に検索レジスター(@/)にあるため、必要ありません。

「%」-ファイル全体でs/を実行
"g"-グローバル検索(1行に複数のヒットがある)
"n"-s/の置き換えを防ぎます--何も削除されません!何も元に戻してはいけません!
(詳細については、:help s_flagを参照)

(このように、 vim-wikia tip171 で説明されているように、「視覚的に選択されたテキストを検索する」と完全に連携します)

22
tron5

つかいます

:%s/pattern/\ 0/g

パターン文字列が長すぎて、もう一度すべて入力したくない場合。

3
Sungwon Jeong

私はすることをお勧めします:

  1. *で検索して、カーソルの下にあるものを「限定検索」するか、標準の/pattern検索を行います。
  2. :%s///gnを使用して、出現回数を取得します。または、:%s///nを使用して、出現する行数を取得できます。

**​​私は本当に「NのNに一致」のメッセージングを提供するプラグインを見つけることができました1 N2 すべての検索ではなく、悲しいかな。

注:出力のトリッキーな表現と混同しないでください。前者のコマンドは4 matches on 3 linesのようなものを提供し、後者は3 matches on 3 linesのようなものを提供します。 技術的に正確ですが、後者は誤解を招くものであり、「3行一致」と言う必要があります。したがって、ご覧のとおり、後者(「n」のみ)のフォームを使用する必要はまったくありません。 「gn」フォームを使用すると、同じ情報をより明確に、より多く取得できます。

0
Bruno Bronosky