LoginSignup
21
21

More than 5 years have passed since last update.

XcodeをEmacs風に操作する

Last updated at Posted at 2013-03-03

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で使える機能だと矩形選択が心残りですが、たまに使う程度なのでよしという感じです。

21
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
21