実行時の現在有効な binding 一覧は :bindings で表示できます(layer: buffer / filetype / app)。
h : 左へ移動j : 下へ移動k : 上へ移動l : 右へ移動0 : 行頭へ移動$ : 行末へ移動^ : 行頭の最初の非空白へ移動w : 次の単語へ移動b : 前の単語へ移動e : 単語末へ移動f{char} / F{char} : 行内で次/前の文字へ移動t{char} / T{char} : 行内で文字の手前/直後へ移動; / , : 直前の f/F/t/T を再実行 / 逆方向再実行% : 対応する括弧へジャンプ(()[]{})gg : バッファ先頭へ移動G : バッファ末尾へ移動i : Insert mode に入るa : カーソル後ろから Insert modeA : 行末から Insert modeI : 行頭の最初の非空白から Insert modeo : 下に新規行を開いて Insert modeO : 上に新規行を開いて Insert mode: : Command-line mode に入る/ : 前方検索入力に入る? : 後方検索入力に入るx : カーソル位置の文字削除X : カーソル前の文字削除s : カーソル位置の文字を削除して Insert mode(substitute)~ : カーソル位置の文字の大文字小文字を切替J : 現在行と次の行を結合D : カーソルから行末まで削除C : カーソルから行末まで変更(削除して Insert mode)S : 行全体を変更(削除して Insert mode)Y : 行全体をヤンクdd : 現在行を削除d + motion : operator-pending delete(dw, dj, dk, d$, dh, dl)diw / daw : 単語 text object delete(簡易)di" / da" : quote text object delete(簡易)di) / da) : paren text object delete(簡易)di] / da], di} / da} : bracket / brace text object delete(簡易)di` / da` : backtick quote text object delete(簡易)dip / dap : paragraph text object delete(簡易)yy / yw : yankyiw / yaw : 単語 text object yank(簡易)yi" / ya" : quote text object yank(簡易)yi) / ya) : paren text object yank(簡易)yi] / ya], yi} / ya}, yi` / ya`, yip / yap(簡易)p / P : paste"a, "A, "_, "+, "* + operator/paste : register 指定m{a-zA-Z} : mark を設定(小文字 local / 大文字 global)'{mark} / `{mark} : mark へ jump(行頭寄せ / 正確位置)'' / `` : jumplist で前の位置へ jump(行頭寄せ / 正確位置)r<char> : 1文字置換= + motion / == : auto-indent(Ruby filetype 対応)c + motion / cc : change(削除して Insert mode)ciw / caw : 単語 text object change(簡易)ci" / ca" : quote text object change(簡易)ci) / ca) : paren text object change(簡易)ci] / ca], ci} / ca}, ci` / ca`, cip / cap(簡易)v : Visual (characterwise)V : Visual (linewise)Ctrl-w w : 次の window へ移動Ctrl-w h/j/k/l : window 間移動(split UI)Ctrl-w c : 現在の window を閉じるCtrl-w o : 他の window をすべて閉じるCtrl-w = : window サイズを均等化Ctrl-w +/- : window の高さを増減Ctrl-w >/< : window の幅を増減Shift+矢印キー : window 間移動 or 分割(1ウィンドウ時は分割、2個以上なら移動)u : UndoCtrl-r : Redo. : 直前変更の repeat(現状: x, dd, d{motion}, p/P, r<char>)Ctrl-o : jumplist の古い位置へCtrl-i : jumplist の新しい位置へ(端末では Tab と同じコード)Ctrl-d / Ctrl-u : 半ページ下/上へ移動(概ね表示高さの半分)Ctrl-f / Ctrl-b : 1ページ下/上へ移動(PageDown / PageUp 相当)Ctrl-e / Ctrl-y : カーソル位置をなるべく保ったまま画面を1行下/上へスクロール(最小実装)zt : カーソル行を画面上端に移動zz : カーソル行を画面中央に移動zb : カーソル行を画面下端に移動q{reg} : macro 記録開始/終了(再度 q で停止)@{reg} / @@ : macro 再生 / 直前 macro 再生n : 直前検索を次へN : 直前検索を前へ(逆方向)* / # : カーソル下の単語検索(前/後)g* / g# : カーソル下の単語を部分一致検索(前/後)gf : カーソル下のファイル名を開く(最小。path / suffixesadd を参照)
file:line 形式なら開いた後に line 行目へ移動file:line:col 形式なら指定行・桁へジャンプhttp:// / https:// で始まる URL はブラウザで開く[text](path) 形式のリンクを認識し、path 部分をファイルとして開く(URL はブラウザ。リンク外ではデフォルト動作にフォールバック)gr : Rich mode をトグル(TSV/CSV をテーブル整形表示、同一バッファ上で動作)g/ : 検索パターンにマッチする行だけを集めたフィルタバッファを作成(再帰フィルタ可、Enter で元行へジャンプ、:q で戻る)Ctrl-g : Git コマンドモード(:git がプリセットされたコマンドラインに入る)
blame → Git blame を開く / status → Git status / diff → Git diff / log → Git log / branch → ブランチ一覧p 親コミットの blame へ遷移 / P 前の blame へ戻る / c コミット詳細を表示Enter で :git checkout <branch> をコマンドラインにプリセット(即時実行ではなく確認ステップあり)Ctrl-c : stdin stream 停止(stdin バッファ表示時)Esc : メッセージ/保留入力のクリアCtrl-z : shell へ suspend(fg で復帰)矢印キー : 移動PageUp / PageDown : 画面単位で移動(概ね表示高さ - 1 行)Q : quickfix list を開く(:copen 相当)]q : 次の quickfix item へジャンプ(:cnext 相当)[q : 前の quickfix item へジャンプ(:cprev 相当)]s : 次のスペルミスへジャンプ(:set spell 有効時)[s : 前のスペルミスへジャンプ(:set spell 有効時)Enter : quickfix / location list バッファ上では選択項目へジャンプ(一覧ウィンドウから元の編集ウィンドウへ戻る)3j, 5k, 2x, 3dd など0 は count ではなく行頭移動として扱う文字 : 挿入Enter : 改行Backspace : 削除Ctrl-n : buffer words 補完(次候補)Ctrl-p : buffer words 補完(前候補)Esc : Normal mode に戻るCtrl-c : Normal mode に戻るCtrl-z : shell へ suspend(fg で復帰)矢印キー : 移動PageUp / PageDown : 画面単位で移動h/j/k/l, w/b/e, 0/$/^, gg/G, 矢印キー : 範囲を伸縮PageUp / PageDown : 範囲を画面単位で伸縮v : characterwise Visual の開始/終了V : linewise Visual の開始/切替y : 選択範囲を yankd : 選択範囲を delete= : 選択範囲を auto-indenti / a + object : text object を選択(iw, aw, ip, ap, i", a", i`, a`, i), a), i], a], i}, a})Esc / Ctrl-c : Normal mode に戻るCtrl-z : shell へ suspend(fg で復帰)Esc : Normal mode に戻るCtrl-c : Normal mode に戻るCtrl-z : shell へ suspend(fg で復帰)文字 : 入力Enter : Ex コマンド実行Backspace : 1文字削除Up / Down : 履歴移動Left / Right : カーソル移動Tab (Ctrl-i) : Ex 補完(: prefix 時、コマンド名/一部引数の文脈対応。:git/:gh サブコマンドも補完可能)Esc : キャンセルCtrl-c : キャンセルCtrl-z : shell へ suspend(fg で復帰): で始まる場合: Ex コマンドとして実行/ で始まる場合: 前方検索? で始まる場合: 後方検索lib/ruvim/app.rbd は keymap の固定列ではなく operator-pending 状態機械で解釈filetype-local -> buffer-local -> mode-local -> global~/.config/ruvim/init.rb(または $XDG_CONFIG_HOME/ruvim/init.rb)の nmap / imap / map_global で上書き・追加可能Ctrl-d/u/f/b/e/y に加えて、矢印キー / PageUp / PageDown も「既定挙動の前に keymap override を試す」ため nmap "<PageDown>", ... のように上書き可能Ctrl-z は keymap ではなく app レベルの suspend 処理として扱う(全モード共通)~/.config/ruvim/ftplugin/<filetype>.rb(または $XDG_CONFIG_HOME/ruvim/ftplugin/<filetype>.rb)では nmap / imap が filetype-local として登録される