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個分入力されます. あと, ここに書いてある以外にもたくさんコマンドはありますので, あしからず.