vim:置換コマンドで検索の文字列を使用


16

私は頻繁にvim /検索コマンドを使用して正規表現を確認します(一致するものを確認するためだけです)。その後、通常は:%sreplaceコマンドを使用します。このコマンドでは、検索からの正規表現を置換する文字列として使用します。たとえば、最初にそのような文字列を探します。

/TP-\(\d\{5\}\)-DD-\d\{3\}

それは私が望むものと完全に一致するので、私は私の置き換えを行います:

:%s/TP-\(\d\{5\}\)-DD-\d\{3\}/\1/g

しかし、ここで正規表現全体をもう一度書く必要があります。通常、その正規表現ははるかに長いため、解決策を探しています:

検索パターンを直接replaceコマンドに貼り付けるための既存のショートカットまたはvimスクリプトはありますか?

ターミナルでvimを使用します(gvimなし)。

回答:


20

一般に、空の正規表現は、以前に入力した正規表現を使用することを意味するため、:%s//\1/g必要なことを行う必要があります。


うわー、それはとても簡単です!まさに私が必要なもの、ありがとう。
kars7e

10
あなたが最後に使用パターンを確認または変更する場合も、使用することができますコントロール-Rを、その後 /の内容を挿入する(検索パターンレジスタを/直接、部分的に入力したコマンドライン(例えば右後に:%s/)。
クリスジョンセン

それも非常に便利なヒントです。ありがとう、クリス!+1
kars7e

「23」などの数字で「\ 1」をフォローアップしたい場合はどうすればよいですか?「\ 123」と解釈されないようにするにはどうすればよいですか?
チャンプ

@Champ後方参照はにのみ進む\9ので、あいまいさはありません。
クサラナナンダ

4

Exコマンドと同様に過去の正規表現検索を確認して変更する別の良い方法は、これらのコマンドを通常モードで編集することです。このモードから、コピーと貼り付けを含むすべてのvimパワーが得られます。

  • 検索:というより?か、/検索するため、試しますq/q?
  • :試用ではなく、Exコマンド用q:
  • このモードを終了するには CtrlC

詳しくはをご覧ください:help q:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.