文字列を検索し、viエディターを使用してファイル内の出現回数を検索します。
:g/xxxx/d
これにより、パターンのあるすべての行が削除され、削除された行数がレポートされます。元に戻すには元に戻します。
方法は
:%s/pattern // gn
n
フラグが必要です。単語を数えるには:
:%s/\i\+/&/gn
そして特定の単語:
:%s/the/&/gn
count-items
documentationセクションを参照してください。
単に入力する場合:
%s/pattern/pattern/g
ステータス行には、viの一致数も表示されます。
:%s/string/string/gが答えを提供します。
(グスタボが言ったように似ていますが、さらに:)
以前の検索については、簡単に実行できます。
:%s///gn
パターンは既に検索レジスター(@/
)にあるため、必要ありません。
「%」-ファイル全体でs/
を実行
"g"-グローバル検索(1行に複数のヒットがある)
"n"-s/
の置き換えを防ぎます--何も削除されません!何も元に戻してはいけません!
(詳細については、:help s_flag
を参照)
(このように、 vim-wikia tip171 で説明されているように、「視覚的に選択されたテキストを検索する」と完全に連携します)
つかいます
:%s/pattern/\ 0/g
パターン文字列が長すぎて、もう一度すべて入力したくない場合。
私はすることをお勧めします:
*
で検索して、カーソルの下にあるものを「限定検索」するか、標準の/pattern
検索を行います。:%s///gn
を使用して、出現回数を取得します。または、:%s///n
を使用して、出現する行数を取得できます。**私は本当に「NのNに一致」のメッセージングを提供するプラグインを見つけることができました1 N2 すべての検索ではなく、悲しいかな。
注:出力のトリッキーな表現と混同しないでください。前者のコマンドは4 matches on 3 lines
のようなものを提供し、後者は3 matches on 3 lines
のようなものを提供します。 技術的に正確ですが、後者は誤解を招くものであり、「3行一致」と言う必要があります。したがって、ご覧のとおり、後者(「n」のみ)のフォームを使用する必要はまったくありません。 「gn」フォームを使用すると、同じ情報をより明確に、より多く取得できます。