slimv と slime-vim 使ってみたものの
swank サーバを立てるのは簡単
これはたとえば ubuntu なら apt install cl-swank
とかして /usr/share/common-lisp/source/slime/start-swank.lisp を動かせばよい。clisp でも sbcl でもどちらでもよい。というか通常は自動起動するから(vim や emacs から) そもそも起動しなくてもよい。
slime-vim
まず vim 用の slime が必要だ。slimv と slime-vim というのがあるらしい。後者はどうやら tmux などのコピー&ペースト機能を利用して repl に対して文字列を送る。swank サーバに対応しているかどうはわからない。対応してないと判断してつかうのはやめた。シンプルなんだけど、tmux で切り替える手間や、コピペに失敗する?みたいで tmux がときどき乱れるので安定性に欠く。
slimv
ということで slimv 。どうも、インストール方法で動いたり動かなかったりするみたいだ。私は単純に .vim/plugin に github から clone した。README.txt にはこれでよいと書いてある。ところが動かない。これ設定になんかコツが必要みたいだ。SlimvInitBuffer がないといって怒られる。
ところが SlimvInitBuffer はちゃんと ftplugin/slimv.vim で定義されている。ということでこれはおかしい。そこで、ftplugin//.vim の最後で call SlimvInitBuffer()
しているところをコメントアウト。.vimrc のコメントアウトは "" でくくるのね。
なんか様子がおかしいので lisp 以外の clojure r scheme のディレクトリをざっくり削除。気分はブラックジャック。そして
let g:slimv_swank_cmd = '! tmux new-window -d -n REPL-CLISP "clisp /usr/share/common-lisp/source/slime/start-swank.lisp "'
を追加。slimv の README.txt にいくつかサンプルが載っている。tmux を起動して vi ~/tmp/test.lisp を編集。
call SlimvInitBuffer()
を実行。そして , + b
とするとサーバが立ち上がった。TCP の名前つきの socket (だっけ?) でコネクトしている模様。
, + e
などで一行だけの評価可能。エラーを起こすと lisp が死ぬ。まぁここまではいいとして、、、
slimv をつかうと、作者の好みの設定に強引させられてしまう。まず ()
の自動挿入。非常に鬱陶しい。これは let g:paredit_mode = 0
で回避できた。さらに Hyperspec (だっけ?) が勝手に Help してくれる。非常に鬱陶しい。考えの邪魔になる。これはどうやっても抑制できなかった。
画面が2つに分かれるのも気に食わない。
ということで、使うのをやめました。当面 tmux で十分という事で。swank サーバはいいアイデアなんだけどな。