これはすでに投稿されている場合に謝罪する。vim wiki上でも答えが見つからないため、謝罪する。vim:1つのコマンドに基づいて複数のコマンドを実行する:globalコマンド
単一の:g
検索のvimコマンドラインモードで複数のコマンドを実行する方法はありますか?例えば
、
:%g/foo/ s/bar/\[email protected]/g | exe "norm /cat\<enter>\"ayiw"
、
foo
に一致するすべての行に、レジスタ
a
、および
の内容でbar
を交換する必要があります(私はそれをするつもり何のために)
は、の次の反復を見つけますcat
(たとえそれが数行先であっても)、周囲のワードをレジスタa
に入れます。
代わりに、この特定の構文は、最初のa
レジスタの現在の内容を使用してsubsitutionコマンドを完了してから、1行で(置換が完了した後に)通常モードコマンドを実行します。
この例は私の特定のユースケースではありませんが、この機能が役立つインスタンスが1つあります。 exe
、つまり%g/foo/exe "norm :s/bar/\\[email protected]/g\<enter>/cat\<enter>\"ayiw"
という1つの要素にすべてを入れることができるとわかりましたが、もっと柔軟に感じるので、最初の方法でやりたいと思います。
私は、この使用してバニラのvimを行うことを好むだろうが、プラグインは、このために存在する場合、それは大丈夫代替手段です。このようなことをする構文があるかどうか誰かが知っていますか?
興味深い。通常、 'norm ...'は一致する行ごとに1回実行する必要がありますが、実際には1回だけ実行されるようです。 '/.../'検索はこれを引き起こすようです。 –