💪
Intellij 系 IDE で、Emacs キーバインドを使いたい! ideaVim で解決できます。
はじめに
こんにちは、皆さん、Emacs 使っていますか?
わたしは最近 Emacs にはまってます。
普段、仕事で使うのは AndroidStudio なので Emacs のキーバインドをそこでも使いたいなーと思っていました。
Emacs プラグインの問題点
Emacs のプラグインはあるにはあるのですが以下の問題がありました。
C-x u
のような「キーバインドの途中で一度手を離すようなキーバインド」が実現できない- 自分独自のキーバインドを設定できない(ひとつのキーバインドで複数の操作をするような)
等々...
解決策
その反面、 ideaVim(Intellij 系 IDE の vim キーバインド用プラグイン) は柔軟性がありました。
- 先程の「キーバインドの途中で一度手を離すようなキーバインド」が実現可能
- 独自のキーバインドを設定できる
-
Intellij Actions が使える
Intellij Actions には IDE のほとんどの操作が定義されています。
これをキーバインドに定義できるためほとんどマウスを使わずに IDE を操作できます。
そこで、 ideaVim を使って Emacs のキーバインドを再現してみることにしました。
手順
- AndroidStudio(他の Intellij 系 IDE も同様) で、 ideaVim をいれます。
-
Open ~/.ideavimrc
で、設定ファイルを開きます。
ideaVim をいれると、IDE の右下にV
というマークがでます。そこをクリックするとOpen ~/.ideavimrc
があります。
ここまできたら後は .ideavimrc
に書いていくだけです。
以下に基本的なキーバインドで書いたので、使ってください。
imap: インサートモード -> 基本このモードを使う
vmap: ビジュアルモード -> Emacs の Mark Set
map: ノーマルモード -> キーバインドが多い場合に使う
.ideavimrc
補足
<C-o>
は一時的に normal mode にはいる-
<Action>(アクション名)
は IntelliJ Action という IDE の操作コマンド
IDE に関わる操作をほとんど設定できます。
以下にアクションリストがあるので参考にしてみてください。(恐らく有志でまとめてくださっています)
https://gist.github.com/lexxish/6d629fa9b38581be3ece2a523879cfb7
自分の行った操作の Intellij Action が知りたいとき
SearchEverywhere を開いて(Shift 二回押し)、「ideavim track」と検索するとでてくる「Ideavim: Track Action IDs」を選択しエンターまたはクリックします。
画像のように ON 表示になっていれば良いです。
その後なにかしらの操作をすると、右下に Action 名がでてきます。
うまくいかないとき
❓キーバインドが反映されない
- キーバインドが Intellij IDE や Mac のキーバインドと競合している
- .ideavimrc の変更後、更新していない
Discussion