[vim]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク

viでの置換は:sコマンドを使用します。


:%s/置換前の文字列/置換後の文字列/g で開いているファイル全てにおいて置換をします。置換をするかどうかを確認したい場合は以下のようにcをつけます。


:%s/置換前文字列/置換後文字列/gc


パス名などを変更する際には/を区切り文字に使うのではなく、;などを区切り文字に使うと便利


%s;/var/home;/home;gc


文章全体でなく、特定範囲のみ置換したい場合は置換したい行の範囲を指定すればよい。


[例] - 63行目から79行目まででbeautyをhairnailに一括置換

:63,79s /beauty/hairnail/g


マッチングを利用した置換は正規表現を使います。


[例]

:s /$\(.*\)/$form->{'\1'}/g


マッチした部分\(.*\)は\1に入るので、例えば$certCompanyEngは$form->{'CertCompanyEng'}に置換されます。


改行コードを挿入するにはCtrl+vと押した後にEnterを押せばよい。以下の例ではスペースを改行に置換。


%s/ /^M/g;


複数ファイルを一括で置換する場合はargsコマンドで対象となるファイルを選び、argsdoコマンドで置換する。以下カレントディレクトリ以下にあるcファイルを対象にmy_fooをMy_Fooに置換。(置換対象ファイルはargaddした後にbuffers!で確認可能)


argadd **/*.c
:argdo %s/\/My_Foo/ge | update



関連記事
vimのFile Explorer
vim - マクロ
statusline
vim - 文字コードの自動認識
vimの折りたたみ設定
vim - 背景色に合わせたカラー設定
範囲の選択
%による特殊ジャンプ
ヤンクの応用 - ヤンクしたバッファに名前をつける
画面のスクロール
reverse insert
空行の削除
undoとredo
編集ファイルのソート
文字コードを指定してファイルを開き直す
コピー & ペースト
文字コードの判別
viエディターでの画面分割
コマンド実行結果の読み込み
vi実行中のコマンド実行
特定範囲の削除
vim - 文字列置換
基本操作
viエディタの設定ファイル
広告