Vimの使い方 基本操作まとめ

Vim使い方, 特に自分がよく使う基本操作をまとめてみました.

目次

編集, 保存, 終了

コマンド 動作
:e [file] fileを開く
:e. エクスプローラーを開く
:w 保存
:q 終了
:q! 保存せず終了
ZZ 保存して終了
ZQ 保存せずに終了

移動系

コマンド 動作
h, j, k, l 左, 下, 上, 右
gj, gk 下, 上に1行移動. (エディタで表示されている行上で移動, つまり, エディタの横幅の制約によって行が折り返されている場合でも, 移動可能)
w 1単語分進む
W 1単語分進む(記号では区切られないので, 次のスペースや, 改行文字まで飛ぶ)
b 1単語分戻る
B 1単語分戻る(記号では区切られないので, 前のスペースや, 改行文字まで飛ぶ)
f[文字] 次の[文字]まで飛ぶ
F[文字] 前の[文字]まで飛ぶ
t[文字] 次の[文字]の手前まで飛ぶ
T[文字] 前の[文字]の次まで飛ぶ
; f, F, t, Tで検索した文字を同方向に繰り返し検索する
, f, F, t, Tで検索した文字を逆方向に繰り返し検索する
g; 直前に変更した位置にカーソルを移動(繰り返し入力することで, 変更リストを遡る)
g, g#を使用して遡った変更リストを逆順に進め, カーソルを移動する.
gg ファイルの先頭に移動
G ファイルの最後に移動
[数値]gg, [数値]G, :[数値] [数値]行に移動
H, M, L 画面に表示されている行について, 最初の行(H), 真ん中の行(M), 最後の行(L)に移動
0 行の先頭に移動
^ 行のテキスト部分の先頭に移動
$ 行の最後に移動
% 対応する括弧に移動
( 文単位での移動. 前の文の先頭に移動
) 文単位での移動. 後ろの文の先頭に移動
{ 段落単位での移動. 前の段落の先頭に移動
} 段落単位での移動. 後ろの段落の先頭に移動
Ctrl-u 半画面分戻る
Ctrl-d 半画面分進む
Ctrl-b 1画面分戻る
Ctrl-f 1画面分進む
Ctrl-o ジャンプリストを遡ってカーソルを移動する(検索や行数指定移動などがジャンプリストに保存されている)
Ctrl-i ジャンプリストを進めてカーソルを移動する(検索や行数指定移動などがジャンプリストに保存されている)

モード変更

コマンド 動作
esc ノーマルモードに戻る
Ctrl-[ ノーマルモードに戻る
i カーソル位置からインサートモードに入る
a カーソルの直後からインサートモードに入る
I 行頭からインサートモードに入る
A 行末からインサートモードに入る
Ctrl-o(インサートモード中に) インサートノーマルモードに入る(インサートモード中に1コマンドのみノーマルモードのコマンドを使用できる)
v ビジュアルモードに入る
V 行単位の選択をするビジュアルモードに入る
Ctrl-v 矩形選択をするビジュアルモードに入る
gv 前回選択した範囲が再選択された状態でビジュアルモードに入る
: コマンドラインモードに入る(続けてコマンドを打ち, Enterで実行)

矩形選択の使い方については, 「矩形選択モードの使い方」でも解説していますので, よろしければ参考になさってください.

削除, コピー

コマンド 動作
x カーソル上の文字を消す
s カーソル上の文字を消して, インサートモードに入る
dd カーソルがある行を消す
dw カーソル位置から1単語分削除する
diw カーソル位置にある単語を1つ削除する
dt( カーソル位置から, 次に最初に出現する(までを削除する
cc カーソルがある行を消して, インサートモードに入る
cw カーソル位置から1単語分削除して, インサートモードに入る
ciw カーソル位置にある単語を1つ削除して, インサートモードに入る
ct( カーソル位置から, 次に最初に出現する(までを削除して, インサートモードに入る
D カーソル位置から行末まで削除
C カーソル位置から行末まで削除して, インサートモードに入る
yy カーソルがある行をコピー
y ビジュアルモードで選択されている部分をコピー
p カーソル行の下の行にペースト
P カーソル行の上の行にペースト
Ctrl-r 0(ゼロ)(インサートモード中に) レジスタ0に保存されている文字列を貼り付ける. 通常, yを使用してコピーした文字列は, レジスタ0に保存される.
コマンド 動作
/ 続けて文字を打ち, Enterで文字列を確定し, 後方検索をかける
? 続けて文字を打ち, Enterで文字列を確定し, 前方検索をかける
* カーソル下の単語を, 後方検索する
# カーソル下の単語を, 前方検索する
g* カーソル下の単語を含む文字列を, 後方検索する
g# カーソル下の単語を含む文字列を, 前方検索する
n 次の単語に移る
N 前の単語に移る

Undo, Redo, 繰り返し

コマンド 動作
u Undo
Ctrl-r Redo
. 直前の操作の繰り返し

Vimでコマンドを繰り返したいときに非常に便利な機能として, マクロがあります. 任意のコマンドを記憶させて, それをいつでも繰り返せるようにできるというものです. 使い方を「Vimのマクロの使い方」, マクロを使った便利操作の一例を「Vimでマクロを使って連番の文を簡単に入力する方法」で解説しておりますので, よろしければ参考になさって下さい.

インデント

コマンド 動作
= カーソルがある行をインデント. ビジュアルモードで範囲を選択していれば, その範囲をインデント
>> インデントを追加
<< インデントを削除

置換

コマンド 動作
r[文字] カーソル上の文字を[文字]に置換
:%s/before/after/g ファイル上の全ての"before"を"after"に置換
:s/before/after/g カーソルの行の全ての"before"を"after"に置換
:10,20s/before/after/g 10~20行目の全ての"before"を"after"に置換
:'<,'>s/before/after/g ビジュアルモードで選択中の範囲の全ての"before"を"after"に置換. " '<,'> "の部分は, 範囲を選択中に":"を押すと自動的に出ます.

置換については, 「Vimの置換コマンドの使い方」でも解説していますので, よろしければ参考になさってください.

ウィンドウ操作

コマンド 動作
:sp [file] ウィンドウを横に分割し, fileを開く(file名はなくても良い)
:vs [file] ウィンドウを縦に分割し, fileを開く(file名はなくても良い)
Ctrl-w s ウィンドウを横に分割する
Ctrl-w v ウィンドウを縦に分割する
:only カーソルのあるウィンドウ以外閉じる
Ctrl-w o カーソルのあるウィンドウ以外閉じる
Ctrl-w w 次のウィンドウに移動
Ctrl-w p 前のウィンドウに移動
Ctrl-w h, j, k, l 左, 下, 上, 右のウィンドウに移動する
Ctrl-w H, J, K, L カーソルがあるウィンドウを左, 下, 上, 右方向に移動する

タブ

コマンド 動作
:tabnew [file] 新しいタブを開く. ファイル名を入力した場合は, そのファイルを開く
:tabclose タブを閉じる(:qなどでも閉じられます)
:tabnext 次のタブに移動する
:tabprevious 前のタブに移動する
:tabfirst 1番目のタブに移動する
:tablast 最後のタブに移動する
:tabonly 現在のタブ以外全てのタブを閉じる
gt 次のタブに移動する. gtの直前に数字をつけると, 数字番目のタブに移動する
gT 一つ前のタブに移動する

インクリメント, デクリメント

コマンド 動作
Ctrl-a カーソル行上で, カーソル以降の最初に出現した数字をインクリメント
Ctrl-x カーソル行上で, カーソル以降の最初に出現した数字をデクリメント

カーソル下に数字がなくても使用できるため, 移動にも使えます.

注意

主にいつも使っているコマンドをまとめてみました. 多くのコマンドは, 直前に数字などを組み合わせて使うことができます. 例えば, 3ddとすれば3行削除できます. 10iでインサートモードに入って, 文字を入力した後にノーマルモードにもどれは, 入力した文字が10個分入力されます. あと, ここに書いてある以外にもたくさんコマンドはありますので, あしからず.