PAST ARTICLE · Apple
emacs から IntelliJ IDEA 13 へ移行中
会社の同僚とエディタの話になって、今までどういうの使っていて、今はこれを使っているとか、これは使いやすい機能とか・・・いろいろと教えてもらいました。言語としては、PHP と JavaScript がメインです。話題にあがったエディタとしては、NetBeans、PhpStorm、Sublime Text、Sakura Editor、emacs などでした。emacs 使っていると、今頃そんなの使っているの?と、お約束ですが、いろいろと突っ込まれますw
自宅で OS X を使っていると、Homebrew、BOXEN など Ruby 製のツールが増えてきており、Rails も含めて Ruby の勉強を始めたところでした。いろいろと Rails の書籍やネットのドキュメントを見ていると、エディタの話もあり、RubyMine がお薦めで emacs や vim はあまりお勧めできないと紹介されていまいた。初めてやることだし、お勧めの RubyMine を使ってみることにしました。
JetBrains のライセンス形態
RubyMine を調べてみると、JetBrains というチェコの企業が作っていて、PhpStorm も出しているところでした。ライセンス形態が少しわかりにくくて、IntelliJ IDEA Community Edition がオープンソースで公開されていて、PHP、Python、Ruby などの言語ごとのプラグインが用意されています。
- WebStorm(パーソナル$49)= IntelliJ IDEA Community Edition + HTML/CSS/JavaScript プラグイン
- PhpStorm(パーソナル$99)= WebStorm + PHP プラグイン
- PyCharm(パーソナル$99)= WebStorm + Python プラグイン
- RubyMine(パーソナル$99)= WebStorm + Ruby プラグイン
- IntelliJ IDEA Ultimate Edition(パーソナル$199)= WebStorm + プラグイン全部盛り
個人使用で2つ以上言語を使用するなら全部盛りの方がいいので、IntelliJ IDEA Ultimate Edition を使うことにしました。30日体験版があるので、まずは30日間使ってみることにしました。
IntelliJ IDEA のキーバインド
エディタを変えるとまず問題になるのがキーバインドです。IntelliJ IDEA には、OS X、Eclipse、NetBeans、emacs などのキーバインドが付いています。まず、emacs のキーバインドで使用してみましが、OS X 標準のショートカットがなく、emacs のキーバインドも設定されていたり、いなかったりでした。
ということで、キーマップを「Mac OS X 10.5+」にして、それに emacs のキーマップを追加することにしました。以下、追加分のキーマプの XML ファイルです。
<?xml version="1.0" encoding="UTF-8"?>
<keymap version="1" name="Mac OS X 10.5+.20140226" parent="Mac OS X 10.5+">
<action id="$Delete">
<keyboard-shortcut first-keystroke="DELETE" />
<keyboard-shortcut first-keystroke="control D" />
</action>
<action id="$Paste">
<keyboard-shortcut first-keystroke="meta V" />
<keyboard-shortcut first-keystroke="control Y" />
</action>
<action id="$SelectAll">
<keyboard-shortcut first-keystroke="meta A" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="H" />
</action>
<action id="$Undo">
<keyboard-shortcut first-keystroke="meta Z" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="U" />
<keyboard-shortcut first-keystroke="control MINUS" />
</action>
<action id="CloseContent">
<keyboard-shortcut first-keystroke="meta W" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="K" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="0" />
</action>
<action id="CodeCompletion" />
<action id="Debug" />
<action id="Editor Delete">
<keyboard-shortcut first-keystroke="control D" />
</action>
<action id="Editor Paste">
<keyboard-shortcut first-keystroke="control Y" />
</action>
<action id="Editor SelectAll">
<keyboard-shortcut first-keystroke="control X" second-keystroke="H" />
</action>
<action id="Editor Undo">
<keyboard-shortcut first-keystroke="control X" second-keystroke="U" />
<keyboard-shortcut first-keystroke="control MINUS" />
</action>
<action id="EditorEscape">
<keyboard-shortcut first-keystroke="ESCAPE" />
<keyboard-shortcut first-keystroke="control G" />
</action>
<action id="EditorIndentSelection">
<keyboard-shortcut first-keystroke="TAB" />
<keyboard-shortcut first-keystroke="control alt BACK_SLASH" />
</action>
<action id="EditorKillRegion">
<keyboard-shortcut first-keystroke="control W" />
</action>
<action id="EditorKillRingSave">
<keyboard-shortcut first-keystroke="alt W" />
</action>
<action id="EditorKillToWordEnd">
<keyboard-shortcut first-keystroke="alt D" />
</action>
<action id="EditorNextWord">
<keyboard-shortcut first-keystroke="alt RIGHT" />
<keyboard-shortcut first-keystroke="alt F" />
</action>
<action id="EditorPageDown">
<keyboard-shortcut first-keystroke="PAGE_DOWN" />
<keyboard-shortcut first-keystroke="control V" />
</action>
<action id="EditorPageUp">
<keyboard-shortcut first-keystroke="PAGE_UP" />
<keyboard-shortcut first-keystroke="alt V" />
</action>
<action id="EditorPreviousWord">
<keyboard-shortcut first-keystroke="alt LEFT" />
<keyboard-shortcut first-keystroke="alt B" />
</action>
<action id="EditorTextEnd">
<keyboard-shortcut first-keystroke="meta END" />
<keyboard-shortcut first-keystroke="shift alt PERIOD" />
</action>
<action id="EditorTextStart">
<keyboard-shortcut first-keystroke="meta HOME" />
<keyboard-shortcut first-keystroke="shift alt COMMA" />
</action>
<action id="EditorToggleStickySelection">
<keyboard-shortcut first-keystroke="control SPACE" />
</action>
<action id="Find">
<keyboard-shortcut first-keystroke="meta F" />
<keyboard-shortcut first-keystroke="control S" />
<keyboard-shortcut first-keystroke="control R" />
</action>
<action id="FindNext">
<keyboard-shortcut first-keystroke="meta G" />
<keyboard-shortcut first-keystroke="control S" />
</action>
<action id="FindPrevious">
<keyboard-shortcut first-keystroke="shift meta G" />
<keyboard-shortcut first-keystroke="control R" />
</action>
<action id="Generate">
<keyboard-shortcut first-keystroke="control ENTER" />
</action>
<action id="GotoFile">
<keyboard-shortcut first-keystroke="shift meta O" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="control F" />
</action>
<action id="NextSplitter">
<keyboard-shortcut first-keystroke="alt TAB" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="O" />
</action>
<action id="NextTab">
<keyboard-shortcut first-keystroke="shift meta CLOSE_BRACKET" />
<keyboard-shortcut first-keystroke="control RIGHT" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="N" />
</action>
<action id="PreviousTab">
<keyboard-shortcut first-keystroke="shift meta OPEN_BRACKET" />
<keyboard-shortcut first-keystroke="control LEFT" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="P" />
</action>
<action id="Replace">
<keyboard-shortcut first-keystroke="meta R" />
<keyboard-shortcut first-keystroke="shift alt 5" />
</action>
<action id="Run" />
<action id="SaveAll">
<keyboard-shortcut first-keystroke="meta S" />
<keyboard-shortcut first-keystroke="control X" second-keystroke="control S" />
</action>
<action id="SplitHorizontally">
<keyboard-shortcut first-keystroke="control X" second-keystroke="2" />
</action>
<action id="SplitVertically">
<keyboard-shortcut first-keystroke="control X" second-keystroke="3" />
</action>
<action id="SwitchApply">
<keyboard-shortcut first-keystroke="control alt ENTER" />
</action>
<action id="SwitchDown">
<keyboard-shortcut first-keystroke="control alt DOWN" />
</action>
<action id="SwitchLeft">
<keyboard-shortcut first-keystroke="control alt LEFT" />
</action>
<action id="SwitchRight">
<keyboard-shortcut first-keystroke="control alt RIGHT" />
</action>
<action id="SwitchUp">
<keyboard-shortcut first-keystroke="control alt UP" />
</action>
<action id="Vcs.QuickListPopupAction" />
</keymap>何回もいろいろなエディタに変えようとトライしていますが、毎回失敗していますが、今回は頑張って耐えてみようと思います。
JetBrains (http://www.jetbrains.com/)