TL;DR
Awesome Emacs Keymap拡張を入れて
-
emacs-mcx.useMetaPrefixEscape
をONにする -
emacs-mcx.useMetaPrefixCtrlLeftBracket
をONにする
Awesome Emacs keymap 拡張について
コーディングに使うエディタをEmacsからVisual Studio Codeに乗り換えてもうすぐ3年になります。乗り換えた後もどんどん機能が追加され、今の所自分にとって理想のエディタです。(特にRemote Development拡張はとてもインパクトのあった機能で、これ以降で開発スタイルがガラリと変わりました)
しかし、長年Emacsを使って体に染み付いたキーバインドはいかんともしがたく、キーバインドをEmacs風にする拡張機能は手放せませんでした。
キーバインドをEmacs風にする拡張は多数あるのですが、色々試して微妙にかゆい所に手が届かない感じのものが多い中、Awesome Emacs Keymap拡張がほぼ理想的な動作で、違和感なく使えたのでこれを使用しています。
ESCキーをMetaキーとして使う設定
Awesome Emacs Keymapはほぼ理想的な動作だったのですが、使い始めた当時はEmacsにおけるMetaキーに対応するのはAltキーのみ(Windows環境)でした。
AltキーをMetaキーとして使う時はAltキーを押しながら該当のキーを押す事になるのですが、押しながらという性質上M-<
のようなシフトキーを押す必要のあるキーのような例だとAlt+Shift+,
と3キー同時押しとなり非常にタイプしにくいという問題があります。
Emacsの場合、Metaキーとして「ESCキーを押して離す」という動作が使えるため、上の例は「ESC
を押した後Shift+,
」というキーバインドが使え、だいぶタイプしやすくなります。
ESCをMetaキーとして使いたいという要望はやはり多かったようで、2020年3月にuseMetaPrefixEscape
という設定が追加されました。これをONにすると、ESCキーをMetaキーとして使えるようになります。
Ctrl+[をMetaキーとして使う設定
ESCキーをMetaキーとして使えるようになりましたが、まだ若干不満がありました。というのもEmacs(というかUNIX系の端末)はESCキーと同じキーコードを発行するCtrl+[
というキーバインドがあり、上述したM-<
の例だとCtrl+[``Shift+,
とタイプすることができました。
CTRL+[
は2キー同時押しになるからESCより押しにくいじゃないかという向きもあるかもしれませんが、ESCは若干左上に指を伸ばさないとならないのに対し、Ctrl+[はほぼホームポジションでタイプできるため、私はこれを多様していました。しかし実際にはCtrl+[がMetaキーになっていないため、癖でCtrl+[``Shift+,
と押してしまい単に「<」が挿入されるというような事態が頻発していました。
そんな中、久しぶりにAwesome Emacs Keymapの変更ログを眺めていたところ、2020年12月にこれを可能にする設定が追加されているのに気づきました。
useMetaPrefixCtrlLeftBracket
をONにすると、Emacsと同じようにCtrl+[をMetaキーとして使用可能になります。これでとても幸せになれました。
まとめ
VScodeとAwesome Emacs keymapはいいぞ。今現在Emacsを使っている人には自信を持ってお勧めできます。