Vim チートシート
起動
コマンド |
動作 |
vim {path/file} |
vim を実行(指定ファイルを開く) |
終了
キー入力 |
動作 |
:q[uit] |
終了 |
:q! |
終了(編集破棄) |
ファイル操作
キー入力 |
動作 |
:e[dit] {path/file} |
ファイルを開く(相対ファイルパスを入力。[TAB]で補完入力) |
:e[dit] {path} |
ファイルエクスプローラを指定パスでオープン([TAB]で補完入力) |
:e. |
ファイルエクスプローラをカレントディレクトリでオープン |
:E[xplore] |
アクティブなバッファのディレクトリでファイルエクスプローラをオープン |
:S[explore] |
:E の水平分割版 |
:Vexplore |
:E の垂直分割版 |
:find |
ファイルを検索して開く 検索先は path に予め設定しておく src配下なら :set path+=src/** |
:sav[eas] {path/file} |
ファイル名を付けて保存 |
:w[rite] |
ファイルの上書き保存 |
モード切替
ノーマルモード
キー入力 |
動作 |
[ESC] [CTRL] + ] |
ノーマルモード |
インサートモード開始
キー入力 |
動作 |
i |
カーソル位置から |
a |
カーソル位置の後ろから |
I |
行頭から |
A |
行末から |
o |
カーソル行の下に新規行 |
O |
カーソル行の上に新規行 |
C |
カーソル位置から行末を削除 |
s |
カーソル位置を1文字削除 |
S |
カーソル行で新規行 |
置換モード開始
ビジュアルモード開始
※ トグルでノーマルモードと切り替わる
キー入力 |
動作 |
v |
文字指向 |
V |
行指向 |
[CTRL] + v |
ブロック指向 |
ビジュアルモード中
キー入力 |
動作 |
gv |
直前の選択範囲を再選択 |
o |
選択範囲の始点と終点をトグルで移動 |
カーソル移動
キー入力 |
動作 |
h |
左 |
j |
下 |
k |
上 |
l |
右 |
w |
次の単語の先頭(区切り文字まで) |
W |
次の単語の先頭(区切り文字を除く) |
b |
カーソル位置が単語の途中なら、その単語の先頭(区切り文字まで) |
B |
カーソル位置が単語の途中なら、その単語の先頭(区切り文字を除く) |
e |
単語の末尾(区切り文字まで) |
E |
単語の末尾(区切り文字を除く) |
gg |
ファイルの先頭行 |
G |
ファイルの末尾行 |
H |
画面の先頭行 |
M |
画面の中央行 |
L |
画面の末尾行 |
0 |
行頭 |
^ |
行頭(非空白文字) |
$ |
行末 |
gm |
行の中央 |
g_ |
行末(非空白文字) |
% |
対の括弧 |
:{number} |
number行 |
'' |
ジャンプ前の位置 |
'. |
直前に変更があった位置 |
'^ |
直前に挿入があった位置 |
m{a-zA-Z} |
現在位置をマーク |
'{a-zA-Z} |
マークした位置 |
ノーマルモード中の編集
キー入力 |
動作 |
x |
1文字カット |
dd |
1行カット |
. |
直前の変更を繰り返す |
yy |
1行コピー |
p |
ペースト(カーソル位置の後) |
P |
ペースト(カーソル位置の前) |
u |
アンドゥ |
[CTRL] + r |
リドゥ |
インサートモード中の編集
キー入力 |
動作 |
[CTRL] + h |
直前の1文字削除 |
[CTRL] + w |
直前の1単語削除 |
[CTRL] + u |
行頭まで削除 |
[CTRL] + r, {0-9a-zA-Z} |
ペースト(レジスタから) |
[CTRL] + r, * |
ペースト(クリップボードから) |
検索
行内1文字検索
キー入力 |
動作 |
f{char} |
前方検索 |
t{char} |
前方検索(1文字前) |
F{char} |
後方検索 |
T{char} |
後方検索(1文字後) |
; |
次を検索 |
, |
前を検索 |
ファイル内文字列検索
キー入力 |
動作 |
/{pattern} |
ファイル内で前方検索 |
?{pattern} |
ファイル内で後方検索 |
* |
カーソル位置の単語を前方検索 |
# |
カーソル位置の単語を後方検索 |
n |
次を検索 |
N |
前を検索 |
置換
文字列置換
キー入力 |
動作 |
:[%]s/{pattern}/{string} |
置換(%なし=前方, %あり=全て) |
1文字(上書き)
キー入力 |
動作 |
r{char} |
1文字上書き(置換モード) |
gr{char} |
1文字上書き(仮想置換モード) |
インデント
準備
:set shiftwidth=4 softtabstop=4 expandtab
キー入力 |
動作 |
> |
インデントを下げる |
< |
インデントを上げる |
= |
自動インデント |
ウインドウ
キー入力 |
動作 |
[CTRL] + w, s |
水平分割 |
[CTRL] + w, v |
垂直分割 |
[CTRL] + w, c |
アクティブウインドウを閉じる |
[CTRL] + w, o |
アクティブウインドウだけ残す |
[CTRL] + w, T |
アクティブウインドウを新規タブに移動 |
gt |
次のタブに切替 |
gT |
前のタブに切替 |
参考