13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeのAwesome Emacs Keymap拡張でESCとCtrl+[がMetaキーとして使えるようになった

Last updated at Posted at 2021-02-01

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を使っている人には自信を持ってお勧めできます。

13
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?