OS X LionのMacVim(64bit)にneobundle入れてcclインストールしてslimvが使えるようになるまで
■MacのVimでCommon Lisp
以前の記事で、MacVim 64bitでは使えないと書いていて、実際、homebrew経由でインストールしたMacVimでは使えなかったのですが、googleのサイトにあるMacVimの最新版、Download MacVim 7.3 (snapshot 64) for Mac OS X Lion. (Released Jan 2, 2012.)
だとslimvが使えるようです。というわけで、改めて…
■環境
- OS: OS X Lion 10.7.4
- Vim: MacVim 7.3
- Common Lisp: Clozure Common Lisp 1.8
- Xcode 4.3.2
- homebrew 0.9
- slimv 0.96
■Map
大雑把な図にするとこんな感じ。なので、必要なものをいれて設定していきます。
■Clozure Common Lisp
homebrewを使います。まだ入れてない方は、Macのパッケージ管理をMacPortsからhomebrewへのような親切なサイトを参考にしてください。入れ終わったら、
brew install Clozure-cl
これで終了。簡単ですね。
ついでにgit, mercurialも必要なため、
brew install git
brew install mercurial
もしてください。
2012.07.13 追記
ターミナルでの ccl は、32bitでした…
ですので、64bitの場合は ccl64 とするか、cclにccl64を割り当ててください。
■MacVim
今回は楽です。ここから最新のものをダウンロードして解凍し、アプリケーションフォルダに入れるだけ。今回は、Download MacVim 7.3 (snapshot 64) for Mac OS X Lion. (Released Jan 2, 2012.) を入れました。snapshot 63だとダメなようです。
■quicklisp
http://beta.quicklisp.org/quicklisp.lispをダウンロードする
quicklisp.lispは、Homeにおいておく
ccl ccl64
■vimプラグイン
GitHubにあるShougoさんのneobundleをインストールしてセットアップします。最近進化しているneocomplcacheやらついでに入れてしまいましょう。上で述べた通り、gitとmercurial(hg)を使います。今回は、新鮮なslimvがあるbitbucketのslimvを使用します。vimprocは、:NeoBundleInstall!する前に一手間必要なため、git cloneしておきます。
mkdir -p ~/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
git clone https://github.com/Shougo/vimproc ~/.vim/bundle/vimproc
フォルダ名の.vimの有無は、gitのプロジェクト名の.vimの有無です。
~/.vimrc
ccl ccl64がどこにあるか分からない場合は、
which ccl64
とすると場所が分かります。
VimShellが使えるようにしましょう。そのためには、Vimprocで作業する必要があります。まず、ターミナルを起動して、
cd ~/.vim/bundle/vimproc
make -f make_mac.mak
としてください。すると、~/.vim/bundle/autoloadにvimproc_mac.soが出来ます。上でvsとタイプしたらできるようにしましたが、お好きなように設定してください。足りないものもあるかと思いますが、これでとりあえず起動出来ます。これで準備が整いました。
ノーマルモード(esc or Ctrl-[ )で、
:NeoBundleInstall!
無事読み込まれたか確認してみましょう。
MacVim.appを起動後、":e test.lisp"とタイプしたところです。syntaxとbufferの間にslimvが表示されていることを確認してください。ファイルの拡張子によって表示が制御されているため早とちりをしないようにしてください。
Neocomplcacheを導入するとこんなことになります。
画面の移動は、Ctrl-Wを2回タイプしたら、上下移動できます。inoremap <C-w> <Nop>としたのは、1回だけだとその行が消えてしまうのが嫌だったからなので、適当にやってください。
,c(カンマ押した後にc)でswank serverに接続して、エラーメッセージを抜けるabortは ,a(カンマ押した後にa)です。他には、,dでカーソルの乗っかっているものを評価するとかいろいろありますが、メニューのslimvのところに数秒カーソルをあわせていると、ショートカットキーが出てくるのでいろいろやってみてください。
■余談
sbclを使いたい場合は、~/.vim/bundle/slimv/slime/start-swank.lispの「 :load-contribs t) ; load all contribs」行を「 :load-contribs nil) ; load all contribs」にしないと(ql:quickload "何か")をしたときにエラーが発生する場合があります。これは、mattn_jpさんに教えていただきました。
@jiroukaja 最新のslimv(bitbucketにあるやつ)を入れて、load-contrib を nil にしたら直ります。
— mattnさん (@mattn_jp) 4月 27, 2012
■参考