指定された行からファイルの最後までのパターンに一致する行を削除します


10

たくさんのコメントが含まれているファイルがあり、たとえば、3行目からファイルの最後までのコメントをすべて削除したい場合、どのようにすればよいですか?

私が最初に試したことは、私が望んでいることをまったくしていないように見えるので、私は行き詰まっています。

:3,$/^#/d

パターンを探して、3からファイルの末尾までの範囲の行を削除する代わりに、3からパターンに一致する行までのすべての行を削除してから停止します。

では、exコマンドをある範囲の行に適用するにはどうすればよいですか。この場合、それはファイルの終わりまでですが、マーク、または行10と20の間、またはその他の範囲の間で行う場合とは異なるのでしょうか?

回答:


15

その:globalためのコマンドを使用します。

:3,$g/^#/d

パターンに一致しない行に適用できます。

:3,$g!/^#/d

フルレンジメカニズムを使用できます(を参照:help :range)。

:.,/#define/+3g/^#/d

そして、あなたはそれをどんなコマンドでも使うことができます:

:3,$g/^#/s/foo/bar/g

これはVimで最も強力なコマンドの1つです:help :global。詳細については、を参照してください。


:3,$v/foo/dパターンと一致しない行にも使用できます。:h vglobal
vappolinario 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.