emacs大好き! 改め、
emacsの keymap(キーバインド) が 大好き!
な僕がIntelliJ IDEA導入後に行ったkeymap設定をご紹介します(*´ڡ`●)
僕のエディター遍歴
※2013年12月現在、エンジニア歴(=社会人歴)は5年です。
エディター | 開発言語 | |
---|---|---|
1年目 | emacs | PHP |
2~3年目 | vimとemacsをウロウロ | PHP |
4年目 | Eclipse | Java |
5年目 | IntelliJ IDEA | Java |
プログラミングで初めて使った(※1)エディターがemacsでした。
最初はemacs特有のCtrl + xx
、Alt + xx
系の操作に四苦八苦しながらも、慣れるともう、Ctrlキー(※2)が左手小指の定位置になっていました。
というわけで、根っからのemacs厨(※3)になった僕はJavaを書くことになったときも、Eclipseにemacsの一部のkeymapを移植して使っていました。
PHPの開発ではIDEを使ったことがなかったので、IDEの便利機能に感動しながら、さらにemacsのkeymapでハッピーな日々を送りました。
そして、今春のある日、チームにIntelliJが導入され、これはもうIntelliJでもemacsのkeymapを使うしかないわけで、以下で紹介する設定を行ったわけです。
※1…仕事として本格的に
※2…キーボード左下のCtrlキーではなく、CapsLockキーをコレでCtrlキーに変更
※3…でもこのとき気づいたんです。僕はemacsを愛していたわけではなく、emascのkeymapを愛していたのです∑(゚д゚lll)
僕のキラキラkeymap設定
EclipseにもIntelliJにも、もともとemacsやvimのkeymapが同梱されており、設定で切り替えることができるのはご存知かと思います。
なので、最初は、IntelliJに同梱されているemacsのkeymapをカスタマイズしようかと思いました。が、やめました。
IntelliJはインテリジェンスで素晴らしいエディターなので、デフォルトの機能を最大限に活かしたい と思ったのです。(これは、IntelliJマスターの同僚の受け売りです。)
※Eclipseでも、Eclipseデフォルトのkeymapにemacsのkeymapを自力で移植して使っていました。
※IntelliJのkeymapをカスタマイズする際は、まず、ベースとなる設定をcopyしてから始めてください。
具体的な設定内容
僕は以下のemacsのkeymapを、IntelliJのデフォルトのkeymapに移植しました。
-
Ctrl + A
Move Caret to Line Start -
Ctrl + E
Move Caret to Line End -
Ctrl + K
Cut up to Line End -
Ctrl + Y
Paste -
Alt + V
Page Up -
Ctrl + V
Page Down
あと、Eclipseにはあったけど、IntelliJではキー未割り当てのコマンドも設定しています。
-
Ctrl + D
Delete Line -
Ctrl + Alt + ↓
Duplicate Line or Block -
Alt + ↑
Move Line Up -
Alt + ↓
Move Line Down
書き出してみると案外少ないですが、この設定をするしないでは、自分の作業効率が大きく変わってきます。
でもこうやって、IntelliJデフォルトのkeymapをカスタマイズすると 2つの問題 がでてきます。
keymapのカスタマイズによる問題
1つ目:コマンド同士の競合
良い例としては、通常Ctrl + A
に割り当てられている "Select All (テキスト全選択)" です。
この場合は、 Select All の定義をCtrl + Alt + A
に変更しました。
同様に他にも被るコマンドについては、Alt
キーまたはShift
キーを定義に追加しました。
※キーの割り当て状況はここでわかります。
②の上でキーを押すと、そのコマンドを絞り込んで表示してくれます。
(変更済みのコマンドはIntelliJが青色で教えてくれます。)
2つ目:他のメンバーのIntelliJが使いにくい
知らんがな
まとめ
IntelliJ IDEAを導入する大きな目的の1つが、作業効率アップだと思います。
自分好みのkeymapで気持ちよくコーディングできればさらに効率アップ間違いなしです!
ぜひIntelliJをあなた色に染めてあげてください!!
--
P.S. 最近はSublime Text にお熱です。もちろん、sublemacspro でな( ー`дー´)キリッ