私家版 Vim標準キーバインド表
基本的なキーバインドは指が覚えているが、たまに使いたいうろ覚えのvimキーバインドについての覚書です。
モーションや繰り返し回数Nの説明は省き、対となる機能はまとめて1つにしました。
完全な解説はこちらです→ http://vim-jp.org/vimdoc-ja/vimindex.html
わからないキーバインドは :h キーバインドで調べましょう。
ファイル選択、表示分割、タブ分割
insert | normal | 機能 |
---|
*** | :h | ヘルプファイルを開く |
*** | :e {file} | ファイルを開く |
*** | gf/gF | カーソル位置の文字列をファイル名/ファイル名+行番号として開く |
*** | :r {file} | ファイルを読み込む |
*** | :r! {command} | コマンド出力を読み込む |
*** | :w {file} | ファイルを上書きする |
*** | :sp {file} | 画面を上下分割して別のファイルを開く (vim -o files..) |
*** | CTRL-WJ/WK | 分割画面の上/下へ切り替える |
*** | :vsp {file} | 画面を左右分割して別のファイルを開く |
*** | CTRL-WH/WL | 分割画面の左/右へ切り替える |
*** | :tabe {file} | タブを追加して別のファイルを開く (vim -p files..) |
*** | gt/gT | 次/前のタブへ切り替える |
*** | ZZ | 変更を保存して現在のファイルを閉じる |
*** | ZQ / :q! | 変更を捨てて現在のファイルを閉じる |
*** | :qa! | 変更を捨てて全てのファイルを閉じる |
入力、削除、ヤンク
insert | normal | 機能 |
---|
*** | i/I | 現在位置直前/現在行頭にてinsertモードに入る. |
*** | a/A | 現在位置直後/現在行末にてinsertモードに入る |
*** | o/O | 現在行直後/現在行直前に新規行を設けてinsertモードに入る |
*** | r | 現在位置N文字を1入力文字で上書きする |
*** | R | 現在位置にて上書きinsertモードに入る |
*** | s/cw/cb/C/cc | 現在位置にてN文字/単語/単語先頭/行末/行全体を削除してinsertモードに入る |
ESC | *** | insertモードを抜けて、入力内容をN回分挿入する. |
CTRL-C | *** | insertモードを抜ける |
CTRL-O | *** | normalモードで1コマンド実行する |
CTRL-E/Y | *** | 1行下/上の文字を現在行に入力する |
CTRL-U | *** | 現在行の入力文字を削除する |
CTRL-W | db | 現在位置から単語先頭までを削除する |
Delete | x | 現在位置のN文字を削除する |
*** | D | 現在位置から行末まで削除する |
*** | J | 現在行からN行を連結する |
*** | dd | 現在行からN行を削除する |
*** | dw/de | 現在位置からN単語/単語末までを削除する |
*** | yy | 現在行からN行をヤンクする |
*** | yw/ye | 現在位置からN単語/単語末までをヤンクする |
*** | P/p | 現在位置の直前/直後へ貼り付ける |
インデント、補完入力、Undo
insert | normal | 機能 |
---|
CTRL-D/T | <</>> | インデントを減らす/増やす |
0 CTRL-D | *** | インデントを無くす |
*** | == | 自動インデントする |
CTRL-N/P | *** | カーソル前方/後方にある単語で補完入力する |
CTRL-XO | *** | オムニ補完入力する |
CTRL-XL | *** | 行全体を補完入力する |
*** | u/CTRL-R | Undo/Redo |
*** | U | 現在行を編集開始時点の内容に戻す |
*** | ~ | カーソル位置の大文字小文字を切り替える |
*** | guw/gUw | 単語を小文字化する/大文字化する |
*** | CTRL-X | カーソル上の数値文字列を減算する |
*** | . | 直前の変更操作を繰り返す |
クリップボード操作
insert | visual | 機能 |
---|
SHIFT-Insert | | 現在位置へクリップボードから貼り付ける |
| CTRL-Insert | 現在選択テキストへクリップボードへコピーする |
| CTRL-Delete | 現在選択テキストへクリップボードへカットする |
カーソル移動
insert | normal | 機能 |
---|
←/→ | h/l | 1文字左/右へ移動する |
SHIFT-←/→ | b/w | 1単語左/右へ移動する |
| e | 単語末尾文字へ移動する |
*** | F{c}/f{c} | 左/右の 文字 {c} へ移動する |
*** | T{c}/t{c} | 左/右の 文字 {c} の直前へ移動する |
*** | ; | 直前のf/t/F/T移動操作を同方向へ繰り返す |
*** | , | 直前のf/t/F/T移動操作を逆方向へ繰り返す |
Home/End | 0/$ | 行頭/行末へ移動する |
↑/↓ | k/j | 1行上/下へ移動する |
SHIFT-↑/↓ | | 1ページ進む/戻る |
PageDown/Up | CTRL-F/B | 1ページ進む/戻る |
*** | CTRL-D/U | 半ページ進む/戻る |
CTRL-XE/XY | CTRL-E/Y | N行上/下方向スクロール |
*** | gg/G | ファイルN行目/ファイル末尾行にカーソルを移動する |
*** | (/)/{/} | 文頭/文末/節頭/節末にカーソルを移動する |
*** | M/H/L | 画面中央/先頭/末尾にカーソルを移動する |
*** | zz/zt/zb | 現在行を画面中央/先頭/末尾にして再表示する |
*** | gd/gD | カーソル位置の単語の定義を関数内/ファイル内で探してカーソルを移動する |
*** | [I | カーソル位置の単語を含む行を一覧表示する |
*** | CTRL-]/T | カーソル位置の単語をタグジャンプする/タグリストに沿って戻る |
*** | g;/g, | 変更リストに沿って進む/戻る |
*** | CTRL-I/O | ジャンプリストに沿って進む/戻る |
*** | % | カーソル右にある括弧の対位置へ移動する |
*** | CTRL-g | ファイル内の現在位置をステータス表示する |
検索置換
insert | normal | 機能 |
---|
*** | :s/{pat}/{to}/{flag} | 文字列置き換え |
*** | & | 再度置き換え |
*** | ?{pat} | 後方(先頭)へ検索する |
*** | /{pat} | 前方(末尾)へ検索する |
*** | */# | カーソル位置の単語を前方/後方検索する |
*** | n/N | 同方向へ再検索する/逆方向へ再検索する |