• ベストアンサー

viエディタ 複数ファイルの一括編集

複数のファイルを開ける事は知ってますが、全部一括して同じ編集操作、具体的には文字列置換をしたいのです。どうすればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

そういう場合は、viではなく、perlなんかを使うのが簡単です。 % perl -i.bak -pe 's/foo/bar/g' *.txt とかすると、対象ファイル全てが置換されます。 (元のファイルは、.bakが付いたファイル名でバックアップが残ります)

その他の回答 (2)

  • mekanik
  • ベストアンサー率26% (4/15)
回答No.3

こんにちは。 参考までに、僕がよくやるのは、 とりあえず、複数ファイルを開いたら、、 たとえば、aaa を bbb に変換したいとき、 :%s/aaa/bbb/ で、最初のファイルの置換をし、 :wn で次のファイルへ行きますが、 それ以降のファイルでは、 :%s のみで同様の変換が行われます。 また、同様の処理を、一つずつ確認しながら行う場合、 複数ファイルを開き、 /aaa で対象文字を検索し、 cwbbb[ESC] n. n. n. と確認しながら置換。 終わったら、 :wn で次のファイルへ行き、 そこからは、 n. のみで同様の置換をします。 ちなみに freebsd で jvim3 というものを使用して できることです。 他の vi でできるかはちょっとわかりません。

  • bakansky
  • ベストアンサー率48% (3502/7245)
回答No.1

私の回答ではないのですが、検索したら下記のページがヒットしました。 「Vimで複数ファイルをまとめて編集する」というタイトルです。 → http://archiva.jp/web/tool/vim_grep.html

関連するQ&A