##Xcodeは不便
普段EmacsやVimを使っているiOSプログラマは、Xcodeのエディタとしての機能の貧弱さに不便を感じると思います。
Emacs で iPhone アプリ開発を快適にするための設定のように外部エディタとしてEmacsを使う手もありますが、
Xcodeとウィンドウを行ったり来たりしなければならず、イマイチです。
あと、EmacsにObjective-Cのための設定をするの、正直面倒ですよね。
##XcodeをEmacs風に操作したい
そこで、XcodeをなんとかしてEmacs風に操作する道を考えます。
XcodeもCocoaアプリなのでEmacsのキーバインドが一部デフォルトで使え、
なおかつ、設定をすれば単語単位の移動や削除も行えます。
ここまでは、素のXcodeでできることですので、すでにやっている前提で話を進めます。
私がこの記事を書くほど改善したかったのは、以下の2点でした。
・XcodeのSet Markによりリージョン選択をするとどこを選択してるのかわかりにくい
・行移動にC-uによる繰り返しを使いたい
Xcodeにもマークを置く機能が付いているのですが、選択領域が反転されないので、
どこを選択しているのかよくわからなくて不便です。
また、キーボードのみで16行カーソルを上に動かしたいとき、素のXcodeだとC-pを16回連打するか、行指定移動をすることになります。
行数を読むのは直感的でないので、私は大幅に行移動をするときはマウスを使っていました。
EmacsだとC-u, C-u, C-pでできますね。
##どうすればいいの?
KeyRemap4MacBookを使いましょう。
KeyRemap4MacBookは大変便利なユーティリティで、多くのMacユーザーはすでに使っていることかと思います。
Emacs Modeの設定はEmacsやTerminal以外でのみ有効になるキーバインドで、重宝します。
上で上げた2つを実現するための設定は、
・[ex] User Control+Space as MarkSet
・このprivate.xmlを追加した後、Enable Control-u
Enable Control-uは開発者のtekezoさんに教えて頂きました。
私がよく使うC-u,C-p(n)とC-u,C-u,C-p(n)だけリクエストしたためここにはその4種類しかありません。
また、Xcodeで使う分には問題ないので、私はKeyCode::VK_WAIT_10MSを取り除いて使っています。
そのうちアップデートによりデフォルトで使えるようになると思います。
他にEmacsで使える機能だと矩形選択が心残りですが、たまに使う程度なのでよしという感じです。