新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

slimv と slime-vim 使ってみたものの

swank サーバを立てるのは簡単

これはたとえば ubuntu なら apt install cl-swank とかして /usr/share/common-lisp/source/slime/start-swank.lisp を動かせばよい。clisp でも sbcl でもどちらでもよい。というか通常は自動起動するから(vimemacs から) そもそも起動しなくてもよい。

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つに分かれるのも気に食わない。

f:id:ryos36:20190227164828p:plain
slimv による起動

ということで、使うのをやめました。当面 tmux で十分という事で。swank サーバはいいアイデアなんだけどな。