Vim Cheat Sheet

編集モード

gg ファイルの先頭に移動する
G ファイルの末尾に移動する
^ カレント行の先頭の文字に移動する
0 カレント行の先頭に移動する
$ カレント行の末尾に移動する
w 次の単語の先頭に移動する
b 前の単語の先頭に移動する
W 次の空白で区切られた単語の先頭に移動する
B 前の空白で区切られた単語の先頭に移動する
cw 単語の末尾までを削除し、挿入モードに入る
dw 単語の末尾までを削除する
f○ カレント行の次の○に移動する
t○ カレント行の次の○の一文字手前に移動する
F○ カレント行の前の○に移動する
T○ カレント行の前の○の一文字手前に移動する
; 次の○に移動する
, 前の○に移動する
ct○ カレント行の次の○の一文字手前までを削除し、挿入モードに入る
dt○ カレント行の次の○の一文字手前までを削除する
Shift+} 次の空行へジャンプする
Ctrl+w, c カレントウィンドウを閉じる
Ctrl+w, Ctrl+w 次のウィンドウへ移る
Ctrl+w, n カレントウィンドウを水平分割する
Ctrl+w, h 左のウィンドウへ移る、ほかj, k, lで各方向のウィンドウへ移る
v ビジュアルモード
Shift+v 行ビジュアルモード
Ctrl+v 矩形ビジュアルモード



ビジュアルモード

iw その単語を選択する
aw その単語〜次の単語の直前までを選択する
'<,'>s/src/dst/g ビジュアルモードの選択範囲を対象にsrcをdstに全置換する
I → 入力 → ESC 行頭一括入力。矩形ビジュアルモードで範囲選択後、Iで挿入モードに入り、任意の文字列を入力後、ESCで抜ける
A → 入力 → ESC 行末一括入力。矩形ビジュアルモードで範囲選択後、Aで挿入モードに入り、任意の文字列を入力後、ESCで抜ける



挿入モード

Ctrl+{ ESC
Ctrl+h 左へカーソルを移動する、ほかj, k, lで各方向へカーソルを移動する



コマンドモード

:sp filename 水平分割してファイルを開く
:vs filename 垂直分割してファイルを開く
:e カレントバッファをリロードする
:!% カレントバッファに読み込んでいるファイルを実行する
:pwd カレントディレクトリを表示する
:cd path カレントディレクトリをpathに移動する
:cd - カレントディレクトリを直前の場所に戻す
:set encoding デフォルトのエンコーディング形式を表示する
:set fileencoding カレントバッファのエンコーディング形式を表示する(cp932, euc-jp, iso-2022-jp, utf-8
:set fileformat カレントバッファのファイル形式を表示する(unix, dos, mac
:set fileencodings エンコーディング形式を自動判別する場合の優先順位を表示する
:set fileformats ファイル形式を自動判別する場合の優先順位を表示する
:set paste ペーストモード



バッファ制御

:ls[!] バッファの一覧を表示する、!があるときはunlisted-bufferを含める
:bn[!] 次のバッファを表示する、!があるときは強制的に切り替える
:bp[!] 前のバッファを表示する、!があるときは強制的に切り替える
:b[!]7 バッファ番号7のバッファを表示する、!があるときは強制的に切り替える
:7b[!] ~
:bw[!] カレントバッファを閉じる、!があるときは変更を破棄する
:bd[elete][!] カレントバッファをunlisted-bufferにする、!があるときは変更を破棄する



検索・置換

:%s/src/dst/g すべてのsrcをdstに置換する
:10,30s/src/dst/g 10行目〜30行目までのsrcをdstに置換する
:%s/copy \(.*\)$/copy \1 \1/ ホールドバッファ、\(〜\)で囲まれた部分を\1〜\9で呼び出す
:noh 検索結果のマークアップを消す
Ctrl+r, / 直前の検索文字列を呼び出す



内部grep

:vimgrep /hogehoge/j **/*.rb | cw
hogehoge 検索条件(正規表現
j マッチしたファイルへ自動的にジャンプしない
** 再帰的に検索
*.rb 検索対象(ワイルドカード可)
| cw マッチしたファイルがあればQuickFixを開く



surround.vim

cs"' "..."を'...'に置換する
cs") "..."を(...)に置換する
cs"( "..."を( ... )に置換する
yss' カレント行を'で囲む
ys$' 行末までを'で囲む
ysw' 単語の末尾までを'で囲む
ysf?' カレント行の次の?までを'で囲む
yst?' カレント行の次の?の一文字手前(それが空白なら、空白以外の文字まで遡る)までを'で囲む
ds" "..."を...に置換する



rails.vim

gf カーソルポジションの記述に対応するファイルに移動する
[f 代替ファイルに移動する
]f 関連ファイルに移動する



Compiler Plugin

:comp コンパイラの一覧を表示する
:comp ruby カレントバッファのコンパイラRubyにする
:comp! ruby すべてのバッファのコンパイラRubyにする
:make % カレントバッファに読み込んでいるファイルをコンパイルする
:make % -c Ruby、文法チェックのみ



QuickFix

:copen QuickFixを開く
:ccl QuickFixを閉じる
:clist エラーリストを表示する
:cn 次のエラー箇所へジャンプする
:cN 前のエラー箇所へジャンプする
:cp ~



MiniBufExplorer

Ctrl+k MiniBufExplorerへ移る
Ctrl+j 元のウィンドウへ戻る