概要

WindowsでVSCodeでVim拡張機能を使っているとショートカットキーの衝突が発生する。 Cursorを使い始めるとさらに衝突が増えるのでどちらかを明示的に無効化する必要がある。 環境を作るたびに設定しているのでメモとして残す。

設定

JSONのコンマは配列最後は削除する。

vimでノーマルモードに戻す際にコマンドにCtrl+Jを追加する。

{
    "key": "ctrl+j",
    "command": "extension.vim_escape",
    "when": "editorTextFocus && vim.active && !inDebugRepl"
},

ターミナルとテキストエディタ箇所を行ったり来たりする際にマウス操作をしたくないのでCtrl+1で移動するようにする。

{
    "key": "ctrl+1",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "terminal.active"
},
{
    "key": "ctrl+1",
    "command": "terminal.focus",
    "when": "editorFocus"
},

Terminalのbashで操作中にCtrl+LでクリアしたいときにCursorのAIチャットが優先的に実行されてしまうのを防ぐ。

{
    "key": "ctrl+l",
    "command": "workbench.action.chat.newChat",
    "when": "chatIsEnabled && inChat && !terminalFocus"
},
{
    "key": "ctrl+l",
    "command": "-workbench.action.chat.newChat",
    "when": "chatIsEnabled && inChat"
},
{
    "key": "ctrl+l",
    "command": "aichat.newchataction",
    "when": "!terminalFocus"
},
{
    "key": "ctrl+l",
    "command": "-aichat.newchataction"
},

Ctrl+Pはvimではカーソル移動されるが、VSCodeのファイルを開くコマンドを優先する。

{
    "key": "ctrl+p",
    "command": "-extension.vim_ctrl+p",
    "when": "editorTextFocus && vim.active && vim.use<C-p> && !inDebugRepl || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'CommandlineInProgress' || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
},