GNU サブセットの代わりにより強力な Perl 正規表現を使用できるように、Vim の外部でこの問題を使用ackして解決することにしました。perlこれを のキーストロークにマッピングできます.vimrc。
ack -l 'pattern' | xargs perl -pi -E 's/pattern/replacement/g'
説明
ack
ackgrepは、 、find、および完全な Perl 正規表現 (GNU サブセットだけではない) を組み合わせた素晴らしいコマンド ライン ツールです。それは純粋な Perl で書かれており、高速で、一致の強調表示があり、Windows で動作し、従来のコマンド ライン ツールよりもプログラマーにとって使いやすいです。でUbuntuにインストールしsudo apt-get install ack-grepます。
xargs
xargsは古い Unix コマンド ライン ツールです。標準入力から項目を読み取り、指定されたコマンドを実行した後、標準入力用に読み取った項目を実行します。したがって、基本的には、によって生成されたファイルのリストがコマンドackの最後に追加されますperl -pi -E 's/pattern/replacement/g'。
perl -pi -E
Perl はプログラミング言語です。
この-pオプションにより、Perl はファイル名の引数を反復するプログラムの周りにループを作成します。
この-iオプションにより、Perl はその場でファイルを編集します。これを変更してバックアップを作成できます。
この-Eオプションにより、Perl はプログラムとして指定された 1 行のコードを実行します。私たちの場合、プログラムは単なる Perl 正規表現置換です。
Perl コマンド ライン オプションの詳細については、 を参照してくださいperldoc perlrun。Perl の詳細については、http://www.perl.org/を参照してください。