Open5

自分用 VSCode(Emacs カスタムキーバインド)と Neovim のショートカットの対応表

nukopynukopy
操作 Emacs Vim (ノーマルモード) Vim (挿入モード)
左へ移動 C-b h C-b
下へ移動 C-n j C-n
上へ移動 C-p k C-p
右へ移動 C-f l C-f
行頭へ移動 C-a 0 (行の先頭),
^ (最初の非空白文字)
C-a (最初の非空白文字)
行末へ移動 C-e $ C-e
カーソル位置の文字を削除 C-d x Del
カーソル前の文字を削除 Backspace, C-h X Backspace, C-h
インデントを増やす C-] >> (行全体),
> (選択範囲)
C-t
インデントを減らす C-[ << (行全体),
< (選択範囲)
C-d
選択範囲のカット C-w d (選択後) -
現在のカーソル位置から行末までのカット C-k D -
ペースト C-y p (カーソル後)
P (カーソル前)
C-y
nukopynukopy
  • コメントアウトの toggle
  • (normal mode)エディタの分割
    • vertical split(現在のウィンドウで開いているバッファの右に分割):g]
    • horizontal split(現在のウィンドウで開いているバッファの下に分割):g[
  • (noarml mode) undo / redo
    • undo:u
    • redo:C-r(対応してなくてちょい気持ち悪い)
  • シンボルの定義へジャンプ(Go to definitions)
  • シンボルの参照一覧(Go to references)
  • シンボルの実装一覧(Go to implementations。インタフェースに対しての操作。)
  • スクロール
    • VSCode with Emacs keymaps
      • スクリーンの幅だけ下にスクロール
        • C-v
      • スクリーンの幅だけ上にスクロール
        • C-q
    • Vim (ノーマルモード)
      • スクリーンの幅だけ下にスクロール
        • C-f (forward)
      • スクリーンの幅だけ上にスクロール
        • C-b (back)
nukopynukopy

ウィンドウ移動系

  • (normal mode) ウィンドウの移動 (chowcho.nvim)
    • C-w + C-w
      • ウィンドウが 2 つの場合:他方のウィンドウに移動する
      • ウィンドウが 3 つ以上の場合:続けて移動したいウィンドウに表示された数字を入力する(下記スクショ参照)
  • (normal model) neotree explore ウィンドウとエディタウィンドウのフォーカスの行き来 toggle:<Leader>t
    • explore からエディタへ移動するときは最後にフォーカスしていたウィンドウに移動する
  • (normal mode) ジャンプ (hop.vim)
    • HopWord: <Leader>hw
    • HopLine: <Leader>hl
    • HopChar2: <Leader>hc
    • HopPattern: <Leader>hp
nukopynukopy

neotree explore 操作

neotree.nvim の explore を開いているウィンドウにフォーカスしているときの操作。操作は normal mode で行う。

neotree により起動するウィンドウは表示こそ違えどバッファ用のウィンドウと変わらないため、keymap は共通であることに注意。

  • 移動:hjkl
  • 特定のファイルのバッファを最終フォーカスのウィンドウで開く:explore 上でファイルに移動して Enter (<CR>)
  • フォルダのツリーの開く・閉じる toggle:explore移動して Enter (<CR>)
  • Preview の toggle:P
  • Preview へフォーカス:l(ウィンドウでバッファを開いている状態なので insert mode に切り替えて編集できる)
  • Preview フォーカスから explore に戻る
    • <Leader>t
    • gh(ウィンドウの移動を利用している。explore → Preview のとき gl は使えないので注意。なぜか gl で移動しようとすると Preview ウィンドウが閉じてしまう)
  • ファイルを作成
    • 移動して a (add)
  • ディレクトリを作成
    • 移動して A (Add)
  • ファイル、ディレクトリを削除
    • 移動して dy(delete, このとき立ち上がる補完だけ邪魔だから無効にしたい)
  • ファイル名、ディレクトリ名を変更
    • 移動して r (rename)
  • 直前のウィンドウに対して :vsplit してファイルを開く: s(直前のウィンドウの左側に vsplit でウィンドウが作られる)
  • 直前のウィンドウに対して :split してファイルを開く: S(直前のウィンドウの上に hsplit でウィンドウが作られる)
  • プレビュー
    • 移動して P
    • プレビューモードで表示されているファイルの操作
      • ウィンドウとして開く
        • <Enter>
      • 10 行進む
        • <C-f> (forward)
      • 10 行戻る
        • <C-b> (back)
  • ファイルのメタデータの表示
    • 移動して i