PR

WindowsのVSCodeでMac風のカーソル移動を力ずくで設定した

記事内に広告が含まれています。

WindowsでVSCodeを使用しているのですが、カーソル移動にいちいち矢印キーを触るのがめんどくさいです。そこで以前使っていたMac風のショートカットを適用しようとしまいましたが、ハマりました・・・というのを力づくで解決しました。

やりたいこと

コマンド 動作
ctrl + f カーソル右に移動
ctrl + b カーソル左に移動
ctrl + n カーソル下に移動
ctrl + p カーソル上に移動
ctrl + e カーソル行の末尾に移動
ctrl + a カーソル行の先頭に移動

↑をキーバインドすることです。

重要なのは、テキスト内のカーソルの以上だけではなくコマンドパレット等のファイルやスニペットの選択なども上記キーで実現することです。

コマンドパレットめっちゃ使いますからね。

出来なかった方法

キーバインドはkeybindings.jsonに書き込むことで設定できます。

{
"key": "ctrl+n",
"command": "cursorDown",
"when": "editorTextFocus"
},
{
"key": "ctrl+p",
"command": "cursorUp",
"when": "editorTextFocus"
},
{
"key": "ctrl+f",
"command": "cursorRight",
"when": "editorTextFocus"
},
{
"key": "ctrl+b",
"command": "cursorLeft",
"when": "editorTextFocus"
},
{
"key": "ctrl+a",
"command": "cursorHome",
"when": "editorTextFocus"
},
{
"key": "ctrl+e",
"command": "cursorEnd",
"when": "editorTextFocus"
}  

上記のように書いてみてテキストエリアのカーソル移動は出来るのですが、コマンドパレット内やスニペットの選択はできません。

when句に適切な値を入れればいいのでしょうがわかりませんでした。
公式ドキュメントも見ましたが有用な情報を得られませんでした。

解決方法

Emacsの拡張機能を入れ必要を機能以外の設定を全て消すことで実現できました。

Emacs Friendly Keymapをインストール

拡張機能の検索ボックスにEmacsと打ち、キーマップをEmacs風にする拡張機能をインストール。

なんでもいいのですが今回はEmacs Friendly Keymapにしました。

設定画面を開く

Emacs Friendly Keymapの設定から「拡張キーボードショートカット」を選択

必要なもの以外消す

キーバインドの設定は削除できるのでいらないものはどんどん消していく。

最終的にこうなりました。

ショートカット設定
ショートカット設定

設定完了

これで設定完了しました。

Mac風のカーソル移動が実現出来たと思います。

ただ、ctrl + aなど全選択のショートカットキーは上書きされてしまっているので必要なものは別にキーバインドしてください。

矢印キーに手を伸ばさなくていいのは気持ちよくプログラミングできますね。

ぜひ設定してみてください。

コメント

タイトルとURLをコピーしました