遅れてきた人によるメモ

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

Linux MintのGVimにneobundle入れてcclインストールしてslimvが使えるようになるまで

■slimvについて

まず、slimeというものがEmacsにはあります。slimeとは、The Superior Lisp Interaction Mode for Emacsの略で、EmacsCommon Lispを使用しやすくする環境を提供するプラグイン(?)です。そして、それをvimに移植したものにあたるのがslimv(The Superior Lisp Interaction Mode for Vim)。どう発音するのか分かりません。使い方については、私もまだ分かっていないので、学びながら何か面白いことがあったら増やしていこうと思います。

■環境

OS: Linux Mint 12 (Ubuntuでも可能なはず)

Vim: GVim 7.3

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が動かなかったから。仕方ないのでVMWareLinux Mint 12(64bit)をインストールし、その環境で作業をしました。MacでもVimではちゃんと動くようです。Macに入っているVimではpythonが使えないためできませんでした。MacVimで動くやり方があれば是非教えてください。MacVim 32bit版で使えるようにする方法を書きました。

 

■手順

f:id:jiroukaja:20120418222725j:plain

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

GVim

  • GVimのインストール
  • neobundle.vimのインストール
  • slimvのインストール
  • ~/.vimrcの設定

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

f:id:jiroukaja:20120401212429j:plain

メニューにslimvが追加されていたら第1段階は成功です。

f:id:jiroukaja:20120401212435j:plain

GVimからcclにswankで接続します。

Slimv --> Repl --> Connect-Server

port 4005で接続されます

f:id:jiroukaja:20120401212453j:plain

お約束

f:id:jiroukaja:20120401212455j:plain

■参考

Slime

Slimv

Slime Turtorial Part One

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

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

紫藤のWiki Clozure CL