遅れてきた人によるメモ

遅れてきた人は危険がいっぱい

OS X LionのMacVim(64bit)にneobundle入れてcclインストールしてslimvが使えるようになるまで

■MacのVimCommon Lisp

以前の記事で、MacVim 64bitでは使えないと書いていて、実際、homebrew経由でインストールしたMacVimでは使えなかったのですが、googleのサイトにあるMacVimの最新版、Download MacVim 7.3 (snapshot 64) for Mac OS X Lion. (Released Jan 2, 2012.)

だとslimvが使えるようです。というわけで、改めて…

■環境

■Map

f:id:jiroukaja:20120418222725j:plain 

大雑把な図にするとこんな感じ。なので、必要なものをいれて設定していきます。

■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が表示されていることを確認してください。ファイルの拡張子によって表示が制御されているため早とちりをしないようにしてください。

f:id:jiroukaja:20120403235733j:plain

f:id:jiroukaja:20120403235738j:plain

f:id:jiroukaja:20120403235745j:plain

f:id:jiroukaja:20120516010004j:plain

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さんに教えていただきました。

■参考

Slime

Slimv

Slime Turtorial Part One

Modern Common Lisp 第1回 Common Lisp処理系のインストール

第2回 Quicklispによるライブラリ環境