viの基本操作

viの基本操作について

viには、コマンドモードと入力モードがあります。

  • コマンドモードから入力モードへ切り替えるには「挿入」系操作を行います。
  • 入力モードからコマンドモードへ切り替えるには「ESC」キーを押下します。

キーワード(特殊文字)

viで特別な意味を持つ文字は以下の通りです。

指定 説明
0 行頭を示す
$ 行末を示す
G 文末を示す
w ワード(一つの単語)を示す
% カレントファイルを示す

コマンドモードでの操作

カーソル移動

指定 説明
h 左に移動
l 右に移動
j 下に移動
k 上に移動
0 行頭に移動
$ 行末に移動
^ 行頭の空白を飛ばした先頭文字列に移動
+ 次行頭の空白を飛ばした先頭文字列に移動
- 前行頭の空白を飛ばした先頭文字列に移動
w 次ワード頭に移動
b 前ワード頭に移動
gg ファイルの最終行に移動
G ファイルの最終行に移動
H 画面内の一番上の行の1文字目に移動する。(home)
L 画面内の一番下の行の1文字目に移動する。(last)
M 画面内の中央部の行の1文字目に移動する。(middle)
( 文頭(ブロック単位)に移動
) 次文頭(ブロック単位)に移動
{ 前段落に移動
} 次段落に移動
[Ctrl]-[f] 一画面分フォワード
[Ctrl]-[b] 一画面分バック
[Ctrl]-[d] 半画面分フォワード
[Ctrl]-[u] 半画面分バック
[数字]-[G] <数字>行目に移動
[数字]-[|] <数字>文字目の文字に移動
z<enter> 現在のカーソル位置が画面のトップになるようにスクロール
zz 現在のカーソル位置が画面の中央になるようにスクロール
% 対応する括弧へ移動

挿入

コマンドモードから入力モードに切り替わります。

指定 説明
i カーソル位置の左に挿入
I カーソル位置の行頭に挿入
a カーソル位置の右に挿入
A カーソル位置の行末に挿入
o カーソル位置の下の行に挿入
O カーソル位置の上の行に挿入

置換と挿入

指定 説明
s 1文字を削除して挿入モード
S 現在の行を削除して挿入モード
cc カーソル位置の行を削除して挿入モード
c0 カーソル位置の直前から行頭まで削除して挿入モード
c$ カーソル位置から行末まで削除して挿入モード
cw カーソル位置からワード末まで削除して挿入モード
cW カーソル位置から区切り文字を飛ばしてワード末まで削除して挿入モード

置換

指定 説明
R カーソル位置から文字列を上書きして置換
r カーソル位置の1文字を1文字に置換

コピー

指定 説明
yl 一文字をコピー。5文字をコピーする場合にはy5lとなります。
yy カーソル位置の行をコピー
y0 カーソル位置の直前から行頭までコピー
y$ カーソル位置から行末までコピー
yw 一単語のコピー。カーソル位置から次ワードの直前までコピーします。
yW カーソル位置から区切り文字を飛ばして次ワードの直前までコピー
yG カーソル位置の行から文末(ファイル末尾)までコピー。ただし、コピー用のメモリバッファを超えると、切り捨てられるので注意が必要です。

削除

指定 説明
x カーソル位置の一文字を削除
dd カーソル位置の行を削除
d0 カーソル位置の直前から行頭まで削除
d$ カーソル位置から行末まで削除
dG カーソル位置の行から文末まで削除
dw カーソル位置から次ワードの直前まで削除
dW カーソル位置から区切り文字を飛ばして次ワードの直前まで削除

ペースト

指定 説明
p 挿入行が1行の場合にはカーソル位置の右、複数行の場合にはカーソル位置の下に挿入
P 挿入行が1行の場合カーソル位置の左に挿入、複行の場合カーソル位置の上に挿入

redoとundo

指定 説明
u 直前の編集作業の取り消し
[Ctrl]-[r] undoを取り消す

保存

指定 説明
q[!] 閉じる(保存しないで編集を破棄してでも閉じる)
:w[!] 保存(読み込み専用ファイルでも保存する)
ZZ 保存して閉じる

その他

指定 説明
J カーソル位置の行と次行接続
~ カーソル位置の英大・英小文字の変換を行う
. 直前の編集作業の繰り返し
>> タブの入力
<< タブの削除
[Ctrl]-[g] 編集中ファイル名、全体行の行数 現在行の位置を表示

関連