教えて!gooにおける不適切な投稿への対応について

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

gooドクター

A 回答 (3件)

そういう場合は、viではなく、perlなんかを使うのが簡単です。



% perl -i.bak -pe 's/foo/bar/g' *.txt

とかすると、対象ファイル全てが置換されます。
(元のファイルは、.bakが付いたファイル名でバックアップが残ります)
    • good
    • 0

こんにちは。



参考までに、僕がよくやるのは、

とりあえず、複数ファイルを開いたら、、

たとえば、aaa を bbb に変換したいとき、

:%s/aaa/bbb/

で、最初のファイルの置換をし、
:wn
で次のファイルへ行きますが、

それ以降のファイルでは、
:%s
のみで同様の変換が行われます。


また、同様の処理を、一つずつ確認しながら行う場合、

複数ファイルを開き、
/aaa
で対象文字を検索し、
cwbbb[ESC]
n.
n.
n.
と確認しながら置換。

終わったら、
:wn
で次のファイルへ行き、
そこからは、
n.
のみで同様の置換をします。

ちなみに freebsd で jvim3 というものを使用して
できることです。

他の vi でできるかはちょっとわかりません。
    • good
    • 0

私の回答ではないのですが、検索したら下記のページがヒットしました。


「Vimで複数ファイルをまとめて編集する」というタイトルです。
http://archiva.jp/web/tool/vim_grep.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング