たるこすの日記

たるこすの日記

リアルからバーチャルへ、バーチャルからリアルへ

Visual Studio Code で Emacs キーバインドを使う

Visual Studio Code (VSCode) で Emacs キーバインドを使えるようにするには、
拡張機能の「Emacs Keymap」をインストールするだけでOKです。
利用可能なコマンドは、以下のページに記載されています。
https://marketplace.visualstudio.com/items?itemName=hiro-sun.vscode-emacs

また、上記ページにもある通り、Ctrl + l でのスクロールを使うには、 「keyboard-scroll」を別途インストールする必要があります。

不満点

1. 対応していないキーバインドがある

エディタやIDEEmacsキーバインドを使うときのあるあるですが、 ところどころ対応していないキーバインドがあります。

ファイル > 基本設定 > キーボードショートカット を開き、
手動でキーバインドを設定することで対応できるものもあります。

例えば、[Ctrl + x o] でのウィンドウ移動は以下のように設定できます。

{
        "key": "ctrl+x o",
        "command": "workbench.action.navigateEditorGroups"
}

2. [Alt + w] などで使うクリップボードがOSのクリップボードと異なる

これは環境によるかもしれませんが、私の環境(Windows10)では、 [Alt + w], [Ctrl + y] などのコマンドのコピーペーストで使うクリップボードはOSのクリップボードと異なっているようで、 別ウィンドウとのコピーペーストはできませんでした。
OSのクリップボードを使いたい場合は、以下のコマンドを使います。

キーバインド 機能
Ctrl + Insert コピー
Shift + Insert ペースト
Shift + Delete カット

Emacs のデフォルトの動作もこのようになっていた気もしますし、この挙動のほうが好みの人が多いかもしれませんが、 私はクリップボードを2種類も使いこなせるほど器用ではないので共通化されている方が使いやすいです。

3. [Ctrl + (何か) (何か)] 等のコマンドが日本語入力時に使えない

[Ctrl + x b] や [Ctrl + x h] などの英字単独での入力があるコマンドは日本語入力時には使えません。 以下のようなメッセージがでてしまいます。

キーの組み合わせ(Ctrl + X、 unknown)はコマンドではありません

キーボードショートカットで設定したキーバインドに対しても同じ症状が起こったため、 VSCode側の問題のようです。

さいごに

不満点は挙げましたが致命的な欠点ではなく、とても使いやすくなりました。
そのうち extension 作成にもチャレンジしたいですね。