VI Editorの使い方

よく使うけど、知ってるコマンドだけでなんとか済ませてしまって
便利なコマンドを覚えないのでメモ

vi の入力モード

i カーソルの前にテキストを入力
a カーソルの後にテキストを入力
I 行頭に Insert
A 行末に Add
o 次行に入力
O 前行に入力

vi のカーソル操作

h
l
k
j
0 行頭へjump
$ 行末へjump
H 画面の最上行頭へjump
L 画面の最下行頭へjump
G ファイルの最終行頭へjump
nG ファイルのn行目へjump
:n ファイルのn行目へjump

vi の終了、ファイル保存、外部コマンドの実行

:q ファイルを保存せず終了
:q! 編集内容を破棄して終了
:wq 編集内容を上書き保存して終了
ZZ :wq と同じ
:x :wq と同じ
:w 編集内容を上書き保存
:e! 最後に保存した内容に復帰する
:r <ファイル名> ファイルの内容を現在行以下に読み込む
:! <コマンド> 外部コマンドの実行

vi の編集コマンド

x カーソル位置の文字を削除
X カーソル位置の手前の文字を削除
dd 現在行を削除
dw カーソル位置の単語を削除
yy カーソル行をバッファにコピー(ヤンク)する
p カーソル位置の後にバッファの内容を貼り付ける
P カーソル位置の前にバッファの内容を貼り付ける

vi の検索コマンド

/<パターン> カーソル位置から後方に向かってパターンを検索
?<パターン> カーソル位置から前方に向かってパターンを検索
n 次を検索する
N 前を検索する
:noh 候補のハイライト表示を解除
:%s/A/B/ 文字列Aを文字列Bに1つ置換
:%s/A/B/g 文字列Aを文字列Bにすべて置換

viの設定変更

:set nu 行番号を表示
:set nonu 行番号を非表示
:set ts=<タブ幅> タブ幅を数値で指定

参考: isbn:9784798115597