Viまとめ
Viのよく使うけど忘れるキー操作
VIのモード
Viは以下のモードがあるので、色々キー操作を覚える前に、自分がどのモードの操作をしているか理解すると効率的に操作を理解できる。
- ノーマルモード
基本のモード。移動やコピー・削除をしたりする時のモード。一番良く使われる。 - 挿入モード
そのまんま、文字の挿入するときのモード。 - コマンドラインモード
”:”を押してコマンドラインで変換とかしたりするときに使うモード。コマンドを覚えていないとなんにもならない悲しいモード。 - ビジュアルモード
行単位や短形で選択して、操作が可能なモード。操作を覚えると一般的なテキストエディタのキー操作より簡単に高度な編集ができる(気がする)
変換系
- 大文字と小文字の変換
ノーマルモードで文字の上で”〜”
移動系
- 最初の行
gg - 最後の行
G
置換・コピー
複数行の置換・コピー
(1) ms → 開始行をsでマーク
(2) me → 終了行をeでマーク
(3-1) 置換
:'s,'es/置換前文字列/置換後文字列/g
(3-2)- コピー
:'s,'ey コピー
(3-3)削除
:'s,'ed
※:ビジュアルモードでも同じことができるし楽な気がする。(下参照)
改行に置換
例えば、
a,b,c,d
となっている文字列を
a
b
c
d
と変更したい場合、","を改行に変更する必要がある。その時は、コマンドラインモードでCrtl+vの後にEnterを押すことで"^M"(改行の意味)となる。
:%s/,/^M/g
強調(ハイライト)
- 文字列強調
ノーマルモードでハイライトしたい文字にカーソル移動して"*"
※:表示でハイライトされない場合、":hlsearch"で色が変わる。消すときは":nohlsearch”
※:”n”で次文字、”N"で前の文字に移動する
行末で折り返さない
- ":set nowrap" 逆に折り返す場合は ":set wrap"
ビジュアルモード
視覚的に行や文字を選択したいときに使うと便利
例えば100行目から最後まで削除したい場合、
100gg →100行目に移動
V →行選択。”v”(小文字のv)も可
G →最終行に移動
d →削除。”x”で消すのも可
これでいける。
削除するんじゃなくて、文字列変換したい場合は、最後の”d”(削除)を以下のように変えることで文字列変換ができる。
: →コマンドラインモードに変更。これで勝手に範囲が選択される
:'<,'>s/置換前文字列/置換後文字列/g
コマンドラインモードにすると勝手に"'<,'>"が入力され範囲指定される。あとは通常の文字列置換コマンドと同じ操作で置換ができる。