回答:
:g/xxxx/d
これにより、パターンを持つすべての行が削除され、削除された行数が報告されます。元に戻すと元に戻ります。
方法は
:%s /パターン// gn
n
旗が必要です。単語を数えるには:
:%s/\i\+/&/gn
そして特定の単語:
:%s/the/&/gn
count-items
ドキュメントのセクションを参照してください。
入力するだけの場合:
%s/pattern/pattern/g
次に、ステータス行にviでの一致数も表示されます。
:%s / string / string / gが答えを返します。
%s/string//ng
。
(グスタボが言ったように、しかしさらに:)
以前の検索については、次のように簡単に行うことができます。
:%s///gn
パターンはすでに検索レジスタ(@/
)にあるため、必要ありません。
"%"- s/
ファイル全体で実行
"g"-グローバル(1行に複数のヒットがある)を検索
"n"-置換を防止s/
- 何も削除されません!元に戻す必要はありません。
(参照::help s_flag
詳細については)
(これにより、vim-wikia tip171で説明されているように、「視覚的に選択されたテキストの検索」と完全に連携します)
短い答え:
:%s /検索する文字列// gn
学習用:
:
あなたはから入力しているCommand
のCommand-line
モード。今、あなたが書いたもの:
はすべてCLI(コマンドラインインターフェイス)です%s
すべての行を指定します。範囲を指定する%
と、ファイル全体が置換されます。すべての出現置換の構文は:%s/old-text/new-text/g
g
行内のすべての出現箇所を指定します。ではg
フラグ、あなたは全体のラインが置換されるようにすることができます。このg
フラグを使用しない場合、行の最初の出現のみが置換されます。n
発生数を出力するように指定します //
二重スラッシュはの省略を表しreplacement text
ます。見つけたいだけだから。発生数を取得したら、N
キーを押して発生を1つずつ確認できます。
行番号1から10の特定の範囲を見つけてカウントするには:
:1,10s / hello // gn
%
ファイル全体が,
行番号で区切られているので注意してください。 行番号1から10の特定の範囲を見つけて置き換える場合:
:1,10s / helo / hello / gn
私はそうすることをお勧めします:
*
カーソルの下にある「境界付き検索」を行うためにwith を検索するか、標準の/pattern
検索を行います。:%s///gn
発生数を取得するために使用します。または、を使用:%s///n
して行数を取得することもできます。**私は本当にすべての検索で "match N on N 1 on N 2 lines" というメッセージを表示するプラグインを見つけることができましたが、悲しいかな。
注:出力の扱いにくい言い回しと混同しないでください。前者のコマンドは4 matches on 3 lines
、後者があなたに与えるようなものをあなたに与えるかもしれません3 matches on 3 lines
。一方で、技術的に正確で、後者は誤解され、「3行が一致して」と言うべきです。ご覧のとおり、後者の(「n」のみ)形式を使用する必要はまったくありません。「gn」フォームを使用すると、同じ情報をより明確に、そしてより多く取得できます。
:g/xxxx/d
)は恐ろしく、危険で、このページの他の人よりも劣っています。選択を解除してください。