MacVimとcocoa.vimで世界が変わった
続き書きました→d:id:marutanm:20100610
こんにちは、iPhoneアプリ開発者見習いです。アイコンどうしようとか説明文かくのめんどくさいといった理由で今のところStoreに成果物は並んでいません。そろそろちゃんと形にしないと。
さて、iPhoneアプリ開発には、みんな大好きXcodeを使うわけです。Objective-Cはメソッド名が長くなりがちなので、それを補完してくれないと開発が成り立ちません。その点、Xcode付属のエディタはばっちり補完してくれるし、補完後には変数だけを入力していくこともできたりしてチョー便利。Vim派でもEmacs派でもないへたれエンジニア*1なので、それなりに使えてそれなりに満足していたわけですが、もう少しカーソル移動を快適にしたいなと思い、XcodeのエディタにVimを設定できないかと色々と調べてみました。そしてたどり着いたcocoa.vimがものすごく便利だったので、そのご紹介。
cocoa.vim
Objective-C用のシンタックスハイライトやコード補完、ドキュメント参照などを実現するためのVimプラグイン。
と、概要は一行で説明できてしまうんだけど、その便利さは今まで長くXcodeを使ってきた人ほどグッとくること間違いなし。ハイライト表示やコード補完は当然としても、例えば Cmd+R でのビルド実行、Cmd+0 でXcodeのプロジェクトウィンドウに戻るといったキーバインドが実現される*2。そして個人的にcocoa.vimの導入の決め手となったのがCmd+Opt+↑ での.hファイルと.mファイルのトグル。実はXcodeのエディタとしてVimを導入しようとしたのは過去にもあったのだけど、その時はこのトグルができなくて断念した覚えあり*3。エディタを割って常時開いておくほどでもなく、サッとヘッダファイルを確認したいときに便利で、やたら多用していたことをできなくなって初めて思い知ったりしたわけです。さらに、:ListMethods というコマンドが用意されていて、TagListみたいなこともこれだけでできる。なんとも便利プラグインなわけです。
これだけにはとどまらない。Xcodeのエディタでの補完は便利なもので、メソッド名を補完した場合にその引数はプレースホルダとなっている。Cmd+. でプレースホルダだけをつぎつぎ置き換えていくことができたりする。Vimでそんなことができるかって?イエス、イネイブル!*4押すべきはTabキーのみ。もはや全てのCocoa/Objective-CプログラマはMacVimをXcodeのエディタとして設定し、cocoa.vimを導入すべき。
と、環境整備ばっかりしていてさっぱりコードを書いていない。こういうエントリは実際にバリバリ使ってみてから書くべきだよね。
cocoa.vimの導入方法
- http://www.vim.org/scripts/script.php?script_id=2674からプラグインをダウンロード(zipになってる)
- ターミナルで
unzip cocoa.zip -d ~/.vim
キーマッピング
ヘルプファイルを読めばいいんだけど、自分を含めて面倒な人用簡易まとめ。
コマンド | 内容 |
---|---|
K | カーソルがあるところの単語をドキュメントから検索 |
Cmd+Opt+↑ | .hファイルと.mファイルのトグル |
Cmd+r | ビルド&実行 |
Cmd+b | ビルド |
shift+k | クリーン |
Cmd+0 | Xcodeのプロジェクトウィンドウを開く |
Cmd+2 | :ListMethods(メソッド一覧) |
(インサートモードで)F5 | オムニ補完を表示 |
MacVim
ついでにMacVimの設定も書いておく。あらかじめSpacesでXcodeとは違うディスプレイで起動するよう設定し、起動時からフルスクリーン表示になるように.gvimrcに設定を書いている。
if has('gui_macvim') set transparency=10 " 透明度を指定 set antialias set guioptions-=t " ツールバー非表示 set guioptions-=r " 右スクロールバー非表示 set guioptions-=R set guioptions-=l " 左スクロールバー非表示 set guioptions-=L set guifont=Osaka-Mono:h14 set imdisable " IMを無効化 "フルスクリーンモード set fuoptions=maxvert,maxhorz autocmd GUIEnter * set fullscreen colorscheme wombat256 endif
関連
- MacVim
http://code.google.com/p/macvim/
-
- MacVim-kaoriya
http://code.google.com/p/macvim-kaoriya/
こっちのがいいかも?
- cocoa.vim