vi 基本操作
カーソル移動
# コマンドの前に繰り返す回数を指定することができる。例えば、4j は4行下に移動する。
h - 左
j - 下に移動する
k - 上に移動する
l - 右に移動する
w - 次の単語ごとに最初の文字に移動する(句読点で止まる)
W - 次の単語ごとに最初の文字に移動する(句読点を無視する)
e - 次の単語ごとに最後の文字に移動する(句読点で止まる)
E - 次の単語ごとに最後の文字に移動する(句読点を無視する)
b - 前の単語ごとに最初の文字に移動する(句読点で止まる)
B - 前の単語ごとに最初の文字に移動する(句読点を無視する)
0 - 行の最初に移動する
^ - 行の最初の文字に移動する
$ - 行の最後に移動する
G - 指定の行に移動する(5Gは5行目に移動する)
テキストの挿入
i - インサートモードを開始する
I - 行の始めでインサートする
a - カーソルの後でインサートする
A - 行の最後でインサートする
o - カーソルの場所で改行する
O - カーソル下に空白の行を挿入する
ea - 単語の最後の文字でインサートする
Esc - インサートモードを終了する
テキスト編集
r - カーソルの文字を置き換える(インサートモードに入らない)
J - 1行下の行を現在の行の最後に移動する
cc - 行を消して置き換える
cw - 単語を消す
c$ - 行を消す
s - カーソル位置の文字を消す
S - 行を消して置き換える
xp - カーソル位置の文字を1つ右に移動する
u - 1つ前の操作を取り消す
. - 1つ前の操作を繰り返す
ビジュアルモード
v - 文字単位でビジュアルモードを開始する
V - 行単位でビジュアルモードを開始する
Ctrl+v - 矩形選択(ブロック選択)を開始する
Esc - ビジュアルモードを終了する
ビジュアルコマンド
y - 選択箇所をコピーする
d - 選択箇所を消す
カット・ペースト
yy - 1行分コピーする
yw - 単語をコピーする
p - カーソルの後にクリップボードをペーストする
P - カーソルの前にクリップボードをペーストする
dd - 1行削除する(カットする)
dw - 現在地の単語を削除する(カットする)
x - 現在地の文字を削除する(カットする)
終了
:w - ファイルを保存する
:wq - ファイルを保存して、エディタを終了する
:q - エディタを終了する(ファイルに変更があった場合は失敗する)
:q! - エディタを強制終了する
検索・置換
/pattern - パターン検索をする
?pattern - パターン検索を後方にする
n - 検索を同じ方向に繰り返す
N - 検索を逆方向に繰り返す
:%s/old/new/g - ファイル内全てののoldをnewに置き換える
:%s/old/new/gc - ファイル内全てののoldをnewに置き換える(確認あり)
複数のファイルへの操作
:e filename - 新しいバッファでファイルを編集する
:bnext (or :bn) - 次のバッファに移動する
:bprev (of :bp) - 前のバッファに移動する
:bd - バッファを削除する(ファイルを閉じる)
:sp filename - 新しいファイルを新しいバッファで開き、画面を分割する
ctrl+ws - 画面を分割する
ctrl+wv - 画面を垂直方向に分割する
ctrl+ww - 画面を切り替える
ctrl+wq - 画面を閉じる