[Vim] Key

Ctrlに関するショートカットキー一覧

使う機会が多いけど忘れやすいもの

ウィンドウ系

コマンド 説明 備考
:sp ウィンドウを上下に分割し現在のファイルを開く splitの略
:vs ウィンドウを左右に分割し現在のファイルを開く vsplitの略
:on アクティブウィンドウ以外を閉じる onlyの略
:new ウィンドウを上下に分割し新しいバッファを開く
:vnew ウィンドウを左右に分割し新しいバッファを開く
x ウィンドウの入れ替え

ファイル操作系

コマンド 説明
:e 現在のウィンドウにファイルを開く
:e . 現在のディレクトリを開く
:enew 現在のウィンドウに空バッファを開く
:Sex 新しい分割ウィンドウ(縦)にファイルを開く
:Sex . 新しい分割ウィンドウ(縦)に現在のディレクトリを開く
:Vex 新しい分割ウィンドウ(横)にファイルを開く
:Vex . 新しい分割ウィンドウ(横)に現在のディレクトリを開く
:tabnew 新しいタブを開く
:w 指定した範囲の内容でファイルを新しく作る
:r 指定したファイルの内容を貼り付ける

画面スクロール系

コマンド 説明
Ctrl+e 1行下にスクロール
Ctrl+y 1行上にスクロール
z{Enter} 現在行を一番上にスクロール
zz 現在行を中央にスクロール
z- 現在行を一番下にスクロール

整形系

コマンド 説明
Ctrl+T インデント(挿入モード時)
Ctrl+D 逆インデント(挿入モード時)

オリジナル

VimがPython3に対応しており、以下の設定が.vimrcに書かれている場合のみ使える
" Markdown h1 header
nnoremap <silent> <space>h= v:!python3 -c 'import sys; from unicodedata import east_asian_width; w=sys.stdin.read().strip(); l=sum(map(lambda x: 2 if east_asian_width(x) in "FWA" else 1, w)); print(w+"\n"+"="*l)'<cr>
" Markdown h2 header
nnoremap <silent> <space>h- v:!python3 -c 'import sys; from unicodedata import east_asian_width; w=sys.stdin.read().strip(); l=sum(map(lambda x: 2 if east_asian_width(x) in "FWA" else 1, w)); print(w+"\n"+"-"*l)'<cr>
コマンド 説明
<Space>h= 見出し1のアンダーライン補完
<Space>h- 見出し2のアンダーライン補完