vi のフラグ

viのフラグを使うことで、より効率的に
編集することができます
通常、範囲を指定しないと
最初の当てはまる文字だけ変換するだけですが
g フラグをつけると、範囲内すべてを変換できます
例えば
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
という内容のファイルを変換するときに
:s/unix/linux/
では
linux mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
となりますが
:s/unix/linux/g
とすると
linux mac linux linux windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
というように、カーソルの行すべてを変換します
また、大文字、小文字を関係なく変換するには
i オプションを使います
オプションは組み合わせて使用できます
例えば
:s/unix/linux/gi
とすれば、大文字小文字関係なく変換できます
もっとも多用するのが、範囲指定です
範囲指定に
%
を使うことで、ファイル内すべてを指定できます
逆に範囲指定するには
1,2 というように開始行終了行を指定します
<例>%で当てはまる範囲をファイルすべてに指定 :%s/unix/linux/gi <例2>2~5行めのみ変換
:2,5s/mac/windows/g
このように、範囲指定には
開始行,終了行
というように設定します
ちなみに、例2の実行結果は
unix mac linux unix windows linux
unix windows linux unix windows linux
unix windows linux unix windows linux
unix windows linux unix windows linux
unix windows linux unix windows linux
unix mac linux unix windows linux
となりました
行番号がわからず、もしくは
調べるのが面倒な場合
.


を使うと便利です
. は、現在のカーソル位置を示し
$は最終行を意味します
すべて変えるなら

で十分です
<例>最初から、カーソルのある2行めまで
linux をfedora へ変更
:1,.s/linux/fedora/g
unix mac fedora unix windows fedora
unix mac fedora unix windows fedora
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
unix mac linux unix windows linux
<例2>カーソルのある2行めから最後まで
unix を ubuntu へ変更
(最初のunixのみ)
:.,$s/unix/ubuntu/
unix mac linux unix windows linux
ubuntu mac linux unix windows linux
ubuntu mac linux unix windows linux
ubuntu mac linux unix windows linux
ubuntu mac linux unix windows linux
ubuntu mac linux unix windows linux
この方法を使うと、かなり効率的に設定ファイルを変更できます
とくに、apache の設定を変更
などというときには
あらかじめ
:set number
で場所を調べておき
この設定変更を使うと、簡単に置き換えできます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です