Visual Studio Code + Vim extension の キーバインディングをカスタマイズする
最近、Visual Studio Code と Vim extension がいい感じになってきたなーと。
デフォルトのキーバインディングを変更したいと思い設定してみました。
英語化
キーバインディングの設定のその前に。。
VS Code は多言語対応もされており、日本語OSでは、メニュー等も日本語で表示されます。
英語で使っていた方が、都合が良いことがあるので、以下の手順で英語化します。
Ctrl + Shift + P
でコマンドパレットを開くConfigure Language
とタイプし Enter すると locale.json が開く"locale":"ja"
を"locale":"en-US"
に書き換え VS Code を再起動
キーバインディングのカスタマイズ
キーバインディングのカスタマイズですが、自分は、Ctrl とのコンビネーションを一部 vim ではない標準の挙動にしたいと思うところがありました。
コマンドパレットに keyboard shortcuts file
と入力し、keybindings.json を開きます。
で、自分は、以下のように設定しました。
// Place your key bindings in this file to overwrite the defaults [ { "key": "ctrl+a", "command": "editor.action.selectAll", "when": "editorTextFocus && !inDebugRepl" }, { "key": "ctrl+c", "command": "editor.action.clipboardCopyAction", "when": "editorTextFocus && !inDebugRepl && vim.mode != 'Insert'" }, { "key": "ctrl+n", "command": "workbench.action.files.newUntitledFile", "when": "editorTextFocus && !inDebugRepl && vim.mode != 'Insert'" }, { "key": "ctrl+v", "command": "editor.action.clipboardPasteAction", "when": "editorTextFocus && !inDebugRepl && vim.mode == 'Insert'" }, { "key": "ctrl+w", "command": "workbench.action.closeActiveEditor", "when": "editorTextFocus && !inDebugRepl && vim.mode != 'Insert'" }, { "key": "ctrl+x", "command": "editor.action.clipboardCutAction", "when": "editorTextFocus && !inDebugRepl" } ]
この設定で Insert Mode 時の挙動が以下のように変わります。
- ctrl+a: テキストの全選択
- ctrl+c: 選択したテキストをクリップボードにコピー(Insert Mode ではないとき)。
- ctrl+n: 新規ファイルを開く(Insert Mode ではないとき)。
- ctrl+v: クリップボードの内容をペースト(Insert Mode のみ)
- ctrl+x: 選択したテキストをクリップボードに切り取り
- ctrl+w: ファイル(タブ)を閉じる(Insert Mode のみ)
Default Keyboard Shortcuts の内容を推測すると書き方が分かるかと思います。
ヤンクしたテキストをシステムのクリップボードに入れるようにする
ヤンクしたテキストを他のアプリにペースできるようにするための設定です。
コマンドパレットに user settings
と入力し、settings.json を開き、以下の内容を追記します。
"vim.useSystemClipboard": true
↑ これ使わなくなった。2017/05
以上、
デフォルトで使えよってところもあると思いますが、一応カスタマイズもできるよ という事で。