👨‍💻

VSCode: Emacsキーバインド拡張まとめ

2023/11/12に公開

はじめに

以下の過去5年間のGoogle検索トレンド (全世界) の結果を見て下さい。もはやVSCodeが一番検索キーワードが多く、Emacsは右肩下がりです...

とは言っても、VSCodeでも慣れ親しんだEmacsキーバインド使いたいですよね?そんなEmacsユーザのために最新のEmacsキーバインドのExtensionを調査してみましたのでまとめておきます。

結論: Awesome Emacs Keymapがお勧め

一通り触ってみた結果をもとに結論から伝えておきます。

キーバインドのサポート数が一番多く機能的にほぼ問題がなく、日本人の方 (tuttieeeさん) が他と比べると頻繁に更新されているなどの理由から、Awesome Emacs Keymapが一番お勧めかと思います。

不具合や改善点があれば、githubの以下のリポジトリにissueを投稿しましょう!
https://github.com/tuttieee/vscode-emacs-mcx

キー割り当ての注意

個人的によく使うバッファの先頭/末尾に移動するM - >, M - <などのMのキー割り当てについてですが、ESCではなくAltを割り当てられているため、お忘れないく。VSCodeの仕様上、ESCと他キーの組み合わせのキーバインドは定義できないみたいです。

VSCodeでも最低限使いたいキーバインド

カーソル移動

コマンド 機能
C-p 1行上に移動
C-n 1行下に移動
C-f 1文字前に移動
C-b 1文字後に移動
C-a 行先頭に移動
C-e 行末尾に移動
C-v 1画面分下に移動
M-v 1画面上に移動
M-< バッファ (ファイル) の先頭に移動
M-> バッファ (ファイル) の末尾に移動

検索

コマンド 機能
C-s 前方検索
C-r 後方検索

編集

コマンド 機能
C-y 貼り付け
C-d カーソルの文字を削除
C-k カーソル位置以降の文字を削除 (削除部分はクリップボードにコピーされているので、C-yで貼り付け可能)
C-Space マークセット
C-w マーク部分からカーソル位置までカット
M-% 文字検索と置換 (一つ一つ確認しながらの置換)

ウインドウ操作

コマンド 機能
C-x 2 2行に分割
C-x 3 2列に分割
C-x 0 カーソルのあるほうの分割したウィンドウを閉じる

Emacsキーバインドの拡張機能一覧

emacsで検索してヒットしたキーバインド系の拡張機能を上位からいくつか調査してみました。

Awesome Emacs Keymap

https://marketplace.visualstudio.com/items?itemName=tuttieee.emacs-mcx

バージョン 0.14.1 (2020/2/21)
感想 個人的には完璧です。M-> (最初/最後の行への移動) などのESCキーはVSCodeの制約から使えず、代わりにAltキーをアサインしているとのことでした。

Emacs Friendly Keymap

https://marketplace.visualstudio.com/items?itemName=lfs.vscode-emacs-friendly

バージョン 0.9.0 (2019/6/6)
感想 個人的には1行削除→Undoした後のカーソル位置が元の位置に戻らずに行末に移動するのが好みではないのと、少し動作が他に比べると遅いです。

VSCodeEmacs

https://marketplace.visualstudio.com/items?itemName=vscodeemacs.emacs

バージョン 0.8.2 (2017-10-09)
感想 ESC系のコマンドがありませんが、それ以外は大体使えたという感じです

Emacs

https://marketplace.visualstudio.com/items?itemName=nisheetjain.emacs

バージョン 0.0.9 (2016/2/12)
感想 カーソルの上下移動コマンドのC-n, C-pがカーソル移動ではなく、画面スクロールだった…

emacs-region

https://marketplace.visualstudio.com/items?itemName=t-yng.emacs-region

バージョン 1.3.0 (2017/7/17)
感想 1行削除のC-kが使えないのでNG

Emacs Keymap Improved

https://marketplace.visualstudio.com/items?itemName=rkwan94.vscode-emacs-improved

バージョン 1.1.0 (2018/8/25)
感想 ESC系のコマンドがありませんが、それ以外は大体使えたという感じです

emacs-mode

https://marketplace.visualstudio.com/items?itemName=xando.emacs-mode

バージョン 0.0.4 (2019/7/21)
感想 Undo (Ctrl-/)が使えない

Emacs Keymap

https://marketplace.visualstudio.com/items?itemName=hiro-sun.vscode-emacs

バージョン 0.1.1 (2016/11/10)
感想 例えばC+2など、画面分割系コマンドが使えない

Discussion