このまとめでは、Vimのチートシートをまとめます。
ノーマルモード
ファイル操作
アクション |
コマンド |
ファイルを開き直す |
:e,:e! |
ファイルを開く |
:e ファイル名 |
ウィンドウを消す |
:q,:q! |
上書き保存 |
:w,:w! |
上書き保存してウィンドウを消す |
:wq(もしくは:x,ZZ),:wq! |
全て上書き保存して終了 |
:wqallm:wqall! |
保存せずにウィンドウを消す |
ZQ |
モード切り替え
アクション |
コマンド |
インサートモード |
i |
行頭でインサートモード |
I |
カーソル直後でインサートモード |
a |
行末でインサートモード |
A |
行を追加してインサートモード |
o |
上に行を追加してインサートモード |
O |
ノーマルモード |
Esc |
ウィンドウ操作
アクション |
コマンド |
新しいウィンドウを開く |
:new ,:new ファイル名 |
新しいタブを開く |
:tabnew,:tabnew ファイル名 |
ウィンドウを分割してファイルを開く |
:split ファイル名 |
ウィンドウを横分割してファイルを開く |
:vsplit ファイル名 |
ウィンドウを隠す |
:hide |
ウィンドウを閉じる |
:close |
現在のウィンドウのみを表示する |
:only |
ウィンドウの縦幅を広げる/狭める |
CTRL-w + / CTRL-w - |
ウィンドウの横幅を広げる/狭める |
CTRL-w > / CTRL-w |
1つ前のウィンドウに移動 |
CTRL-w w |
上下左右のウィンドウに移動 |
CTRL-w k,CTRL-w w,CTRL-w H,CTRL-w l |
近接したウィンドウと入れ替える |
CTRL-w r |
上下左右のウィンドウと入れ替え |
CTRL-w K,CTRL-w J,CTRL-w H,CTRL-w L |
ウィンドウを閉じる |
CTRL-w c |
ウィンドウを消す |
CTRL-w q |
バッファ操作
アクション |
コマンド |
バッファ一覧 |
:ls |
指定のバッファ |
:b バッファ番号 |
次のバッファ |
:bn |
バッファを消す |
:bd |
バッファを閉じる |
:bw |
移動
アクション |
コマンド |
上/下/左/右 |
k/j/h/l |
ページアップ/ページダウン |
CTRL-u/CTRL-d |
行頭/行末 |
0/$(^は最初の文字へ) |
次の単語/前の単語 |
w/b(W/Bは空白区切りでジャンプ) |
文字xが見つかるまで |
fx |
文字xまで |
fx |
逆方向で文字xまで |
Fx |
(や{、[の対へ移動 |
% |
先頭行へ移動 |
gg |
最終行へ移動 |
G |
検索
アクション |
コマンド |
textを検索 |
/text |
textを逆方向に検索 |
?text |
次を検索 |
n |
逆方向に次を検索 |
N |
カーソル下の単語を検索 |
* |
置換
アクション |
コマンド |
行内で置換(fooをbarに変換) |
:s/foo/bar/ |
全置換(fooをbarに置換) |
:s/foo/bar/g |
編集
アクション |
コマンド |
カーソル下の文字をxで置換 |
rx |
行を連結 |
J |
カーソル下の文字を削除 |
x |
大文字/小文字に変更 |
~、gU/guのあとのモーションを指定 |
行をヤンク |
yy、Y |
貼り付け |
p |
前方向に貼り付け |
P |
削除 |
dの後にモーションを指定 |
行を削除 |
dd |
カーソル位置から行末までを削除 |
D |
指定の部分を変更 |
cの後にモーションを指定 |
インデント |
==、選択して= |
やりなおし |
u |
繰り返し |
. |
モーション
アクション |
コマンド |
上/下/左/右 |
k/j/h/l |
次の単語/前の単語 |
w/b(W/Bは空白区切りでジャンプ) |
文字xが見つかるまで |
fx |
行頭/行末 |
0/$(^は最初の文字へ) |
文字xまで |
fx |
逆方向で文字xまで |
Fx |
ヴィジュアル操作
アクション |
コマンド |
領域選択 |
v |
矩形選択 |
CTRL-v |
行選択 |
V |
全ての行を選択 |
ggVG |
アクション |
コマンド |
レジスタ一覧 |
:register |
選択レジスタ「a」に格納 |
選択しながら"ay |
レジスタ「a」をペースト |
"@a |
マクロ
アクション |
コマンド |
レジスタaに対してマクロ登録を開始 |
qa |
マクロ登録を終了 |
q |
レジスタaのマクロを再生 |
@a |
テキストオブジェクト
以下はv(選択)、c(変更)、d(削除)などのオペレータに続いてタイプすることで作用する。
アクション |
コマンド |
単語 |
iw、awは終端の空白を含む |
空白区切りの単語 |
iW,aWは終端の空白を含む |
(から) |
aB,a(,a)、内側はib,i(,i) |
{から} |
aB,a{,a}、内側はiB,i{,i} |
[から] |
a[,a]、内側はi[,i] |
<から> |
a<,a>、内側はi<,i> |
からのようなタグブロック |
at,内側はit |
クォート |
a",a',a`,内側はi",i',i` |
文 |
is,asは終端の空白を含む |
段落 |
ip,apは終端の空白を含む |
インサートモード
挿入操作
アクション |
コマンド |
レジスタaの中身を貼り付け |
CTRL-r a(CTRL-r +でクリップボードからペースト) |
特殊文字を挿入 |
CTRL-v CTRL-aで^Aを挿入 |
特殊文字を挿入(コード指定) |
CTRL-v 005で^Eを挿入 |
補完
アクション |
コマンド |
前の候補(もしくはバッファない補完) |
CTRL-p |
次の候補(もしくはバッファない補完) |
CTRL-n |
ファイル内の行 |
CTRL-x CTRL-l |
ファイル内のキーワード |
CTRL-x CTRL-n |
ファイル内のincludeファイル |
CTRL-x CTRL-i |
タグ |
CTRL-x CTRL-J |
ファイル名 |
CTRL-x CTRL-f |
ユーザ定義補完 |
CRTL-x CTRL-u |
omni補完 |
CTRL-x CTRL-o |
スペル修正 |
CTRL-x CTRL-s |
コマンドモード
挿入操作
アクション |
コマンド |
レジスタaの中身を貼り付け |
CTRL-r a(CTRL-r +でクリップボードからペースト) |
編集中カーソル下の単語 |
CTRL-v CTRL-w(CTRL-r CTRL-aで空白区切りの単語) |
編集中カーソル下のファイル名 |
CTRL-v 005で^Eを挿入 |
特別文字
アクション |
コマンド |
現在のファイル名 |
% |
編集中の別のファイル名 |
# |
N番目の別のファイル |
#N |
すべての引数(オプション以外、空白区切り) |
## |