読者です 読者をやめる 読者になる 読者になる

反省はしても後悔はしない

Vim とか備忘録とか。それと関数型言語勉強中

Vim で使える Ctrl を使うキーバインドまとめ

Vim

キーマップに Ctrl キーを使うものを割り当てたいんですが、既存の機能と衝突するのが怖いので調べてみました。

keybind normal visual insert
<C-a> 数字を加算 なし さっき挿入した文字を挿入
<C-b> 1ページ上にスクロール 1ページ上にスクロール なし*1
<C-c> (検索)コマンドの中止 visual モードの終了 insert モードの終了
<C-d> 半ページ下にスクロール 半ページ下にスクロール 字下げの削除
<C-e> 1行下にスクロール 1行下にスクロール カーソルの下の行の同じ位置の文字を挿入
<C-f> 1ページ下にスクロール 1ページ下にスクロール インデントの再調整
<C-g> カーソル位置とファイルの状態表示 セレクトモードへ移行 1行下の、挿入開始位置と同じ列へ移動
<C-h> カーソルを左に移動 カーソルを左に移動 カーソル前の文字を削除
<C-i> ジャンプリスト中の新しいカーソル位置へ移動 なし =<Tab>
<C-j> =<NL> 1行下に移動 =<NL> =<NL>
<C-k> なし なし 合字を入力
<C-l> 再描画 なし なし*2
<C-m> =<CR> 1行下の先頭に移動 =<CR> =<CR>
<C-n> 1行下へ移動 1行下へ移動 補完(後方検索)
<C-o> 古いカーソル位置へ移動 なし 1つコマンドを実行して、挿入モードに戻る
<C-p> 1行上へ移動 1行上へ移動 補完(前方検索)
<C-q>*3 =<C-v> =<C-v> =<C-v>
<C-r> リドゥ なし レジスタの内容を貼り付け
<C-s>*4 なし なし なし
<C-t> タグスタックをたどる なし 字下げの挿入
<C-u> 半ページ上にスクロール 半ページ上にスクロール 現在の行の入力文字を全て削除
<C-v> 矩形 visual モードへ移行 矩形 visual モードへ移行 次に入力した文字を入力
<C-w> ウィンドウコマンド ウィンドウコマンド 前の単語を削除
<C-x> 数字を減算 なし CTRL-X モードへ (補完やスクロール)
<C-y> 1行上にスクロール 1行上にスクロール カーソルの下の行の同じ位置の文字を挿入
<C-z> サスペンド サスペンド なし
<C-^> alternate ファイルを開く (= :e #) なし IM切り替え
<C-]> カーソル位置の単語でタグジャンプ カーソル位置の単語でタグジャンプ 短縮入力のトリガ
<C-@> なし なし さっき挿入した文字を挿入して insert モードを終了

意外と insert モードでも Ctrl を使ったコマンドがあるのは知らなかったなぁ。

*1:+revins でコンパイルされたときは revins の切り替え

*2:insertmode がオンのときはノーマルモードへ移行

*3:ただし、端末によっては使えない

*4:ただし、端末によっては使えない