ITエンジニアの種籾(たねもみ)

IT技術とか株式投資とか。

VSCodeでEmacsキーバインドを使う

2020年 09月 07日

目次

ここ1、2年、Emacs と VSocde を行ったり来たりしています。

Emacs のキーバインドは素敵ですが、VSCode の操作性や簡単に拡張できるが気に入っており、悩んでいました。(まだ悩んでいます)

業務では Emacs とはいかず、VSCode を使うことが多くなるので、VSCode でも最低限、 Emacs キーバインドを使えるようにしておきたいです。

今回の記事は、Emacs 素敵だけど、VSCode に魅力を感じている人に向けて、 おすすめの Emacs プラグインをインストールして、追加で独自のキーバインドを割り当てる方法を紹介します。

プラグインのインストール

emacs でマーケットプレース検索して、上から順にリポジトリを見ていって、まだメンテされてそうなのを選びました。

しばらく使ってみた感じで、以下のいくつか気になる点があり、Awesome Emacs Keymap の仕様は停止しました。

  • 検索(C-s)で、日本語文字列を入れて Enter すると、検索(C-s)する前のカーソルに検索の日本語文字列が挿入されてしまう。
  • なんとなくもっさりしている。日本語入力が消失することがときどきある。

他の Emacs キーバインドプラグインで、以下を選びました。

日本語検索順調です。なんとなく全体のキー操作が軽快になったような気もしますが、真偽はわかりません。

ショートカットのカスタマイズ

使いながら、必要になったら付け足していきます。

それでも Ctrl+c、Ctrl+v を使いたい

M-w, C-y でコピーできるようになりましたが、マウス操作しているときは Ctrl+c、Ctrl+v を使いたいです。

コーディングしているときは、キーボードに手があって、Emacs キーバインドでの移動が素敵ですが、 考え事とか、調べているときは右手がマウス、左手の小指が Ctrl にあって、Ctrl+c、Ctrl+v が恋しいです。

Emacs バリバリだと、Ctrl+c はプレフィックスとして大活躍ですが、VSCode だとそこまでキーバインドが多くならないので使っていません。 Ctrl+v の半ページ送りは使えたらいいけど、なくても困りません。 最近は Emacs でも、ヌルヌルのスクロールが気持ちよくてマウス(トラックパッド)でスクロールしちゃってました。

ということで、Ctrl+c、Ctrl+v は潰しても良いと判断して、コピペに割り当てることにします。 Ctrl+c を execCopy、Ctrl+v を execPaste に割り当てます。

設定は簡単で、VSCode の UI を使って設定しました。 コマンドパレットの「キーボードショートカットを開く」です。

出来上がった JSON は以下のとおりです。

({
  "key": "ctrl+c",
  "command": "execCopy"
},
{
  "key": "cmd+c",
  "command": "-execCopy"
},
{
  "key": "ctrl+v",
  "command": "execPaste"
},
{
  "key": "cmd+v",
  "command": "-execPaste"
})

定義ジャンプの戻る進む

定義ジャンプの進む、戻るを Eclipse に合わせて Alt 矢印に変えました。

  {
    "key": "alt+left",
    "command": "workbench.action.navigateBack"
  },
  {
    "key": "alt+right",
    "command": "workbench.action.navigateForward"
  },

コマンドパレットとタスク実行

Ctrl+¥ にコマンドパレットを、Ctrl+@にタスク実行を割り当てました。

  {
    "key": "ctrl+[IntlYen]",
    "command": "workbench.action.showCommands"
  },
  {
    "key": "ctrl+[BracketLeft]",
    "command": "workbench.action.tasks.runTask"
  },

以上です。

広告