Linux MintのGVimにneobundle入れてcclインストールしてslimvが使えるようになるまで
■slimvについて
まず、slimeというものがEmacsにはあります。slimeとは、The Superior Lisp Interaction Mode for Emacsの略で、EmacsでCommon Lispを使用しやすくする環境を提供するプラグイン(?)です。そして、それをvimに移植したものにあたるのがslimv(The Superior Lisp Interaction Mode for Vim)。どう発音するのか分かりません。使い方については、私もまだ分かっていないので、学びながら何か面白いことがあったら増やしていこうと思います。
■環境
OS: Linux Mint 12 (Ubuntuでも可能なはず)
vim plugin: neobundle(バージョン管理)
slimv(vimのslime)
Common Lisp: Closure Common Lisp 1.8
Common Lisp Library: quicklisp
※今回はMacが関係ありません。OS X LionのMacVim 7.3.390(64bit)ではslimvが動かなかったから。仕方ないのでVMWareでLinux Mint 12(64bit)をインストールし、その環境で作業をしました。MacでもVimではちゃんと動くようです。Macに入っているVimではpythonが使えないためできませんでした。MacVimで動くやり方があれば是非教えてください。MacVim 32bit版で使えるようにする方法を書きました。
■手順
大雑把な図にするとこんな感じ。なので、必要なものをいれて設定していきます。
Clozure Common Lisp
- cclのフォルダをダウンロード
- cclのリビルド
- 端末にcclと入力して起動できるようにする
- quicklispからswankをインストール
■GVim
GVimをインストールします。ここらへんは駆け足で。パッケージは、vim, vim-gnome, vim-tiny, vim-athena, vim-gtk, vim-noxが必要。端末で、sudo apt-get install ***** でインストール。
gvim
■Clozure Common Lisp
Clozure Common Lisp(ccl)はapt-getではインストールできないため手動でインストールします。その際、Subversionを使うのが楽なので、端末からsudo apt-get install subversionでインストールします。
cd /usr/local/src
/usr/local/srcに移動svn co http://svn.clozure.com/publicsvn/openmcl/release/1.8/linuxx86/ccl
ズラズラズラsudo /usr/local/src/ccl/lx86cl64
linuxの64bitなのでlx86cl64を使用
cclが起動する
今回はリビルドするのでsudoで起動
Welcome to Clozure Common Lisp Version 1.8-r15286M (LinuxX8664)!と表示される
?(rebuild-ccl :full t)
ズラズラズラ(quit)
cclを終了sudo cp /usr/local/src/ccl/scripts/ccl64 /usr/local/bin/ccl
64bitを使用するので、ccl64をcclという名前でコピーsudo gvim /usr/local/bin/ccl
#!/bin/sh
#
# Change the definition of CCL_DEFAULT_DIRECTORY below to refer to
# your Clozure CL installation directory. The lisp will use this
# environment variable to set up translations for the CCL: logical
# host.
# Any definition of CCL_DEFAULT_DIRECTORY already present in the
# environment takes precedence over definition made below.
if [ -z "$CCL_DEFAULT_DIRECTORY" ]; then
CCL_DEFAULT_DIRECTORY=/usr/local/src/ccl
fi
〜以下略〜
CCL_DEFAULT_DIRECTORY=/usr/local/src/ccl
この場所を適切なディレクトリに修正sudo chmod +x /usr/local/bin/ccl
アクセス権の付与ccl
Welcome to Clozure Common Lisp Version 1.8-r15286M (LinuxX8664)!
?と再度表示される。
されたら成功
■quicklisp
http://beta.quicklisp.org/quicklisp.lispをダウンロードする
quicklisp.lispは、Homeにおいておく
ccl
- (load "quicklisp.lisp")
- (quicklisp-quickstart:install :path ".quicklisp/")
- (ql:add-to-init-file)
- (ql:quickload :swank)
■vimプラグイン
GitHubにあるShougoさんのneobundleをインストールしてセットアップします。
gitを使うのでインストールしていない場合は、sudo apt-get install gitでインストールします。
mkdir -p ~/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
git clone https://github.com/vim-scripts/slimv.vim ~/.vim/bundle/slimv
フォルダ名の.vimの有無は、gitのプロジェクト名の.vimの有無
slimv.vimのフォルダ名をslimv.vimにすると、.vimrcの設定がうまくいかないためフォルダ名はslimvにしました。githubよりもbitbackerの方が新しいので、こちらの方がよいでしょう。その際、hgを使用するため、mercurialが入っている必要があります(sudo apt-get install mercurial)。また、sbclを使用する場合は、(ql:quickload :パッケージ)の際エラーがでるとのことなので、~/.vim/bundle/slimv/slime/start-swank.lispの「:load-contribs t) ; load all contribs」を「:load-contribs nil) ; load all contribs」にしてください(mattn_jpさんに教えてもらいました)
gvim ~/.vimrc
set nocompatible " be iMproved
filetype plugin indent off " required!
if has('vim_starting')
set runtimepath+=~/.vim/bundle/neobundle.vim
call neobundle#rc(expand('~/.vim/bundle/'))
endif
" originalrepos on github
NeoBundle 'Shougo/neobundle.vim'
"NeoBundle 'vim-scripts/slimv'
NeoBundle 'https://bitbucket.org/kovisoft/slimv'
filetype plugin indent on " required!
let g:slimv_lisp = '/usr/local/bin/ccl'
let g:slimv_impl = 'clozure'
let g:slimv_preferred = 'clozure'
let g:slimv_swank_cmd = '! xterm -e ccl --load ~/.vim/bundle/slimv/slime/start-swank.lisp &'
これで準備が整いました。
ノーマルモード(esc or Ctrl-[ )で、
初めてのものがある場合は、
:NeoBundleInstall!
アップデートする場合は、
:NeoBundleInstall
無事読み込まれたか確認してみましょう。
gvim test.lisp
syntaxとbufferの間にslimvが表示されていることを確認してください。ファイルの拡張子によって表示が制御されているため早とちりをしないようにしてください。
メニューにslimvが追加されていたら第1段階は成功です。
GVimからcclにswankで接続します。
Slimv --> Repl --> Connect-Server
port 4005で接続されます
お約束
■参考