FROM THE OLD SITE

旧WordPressで公開していた記事を、当時の内容を尊重して再掲載しています。

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/)