社内でSICP(計算機プログラムの構造と解釈:Structure and Interpretation of Computer Programs)を読もうということで、SchemeはGaucheがいいという噂を元にVimで環境を構築してみました。
正直また読み始めだし、Emacsの方がいいよ!って噂を聞きつつも慣れ親しんだVimで環境を構築して見ます。
GacuheのInstall
brew install gauchebrew install rlwrap
rlwrapは別にどっちでもいいですが、標準のgoshというコマンドから実行されるREPLだと、カーソルキーの↑で前の履歴を辿れなかったり、Ctrl+aで行頭、Ctrl+eで末尾などのターミナルでお馴染みの操作が使えなかったので入れてみました。
でも正直このあとVimからREPLを操作できるpluginを入れるので不要だったりしますが、VimからREPLを起動するまでもないときに重宝すると思います。
ちなみにREPLの起動は、
$ gosh
gosh> (+ 1 2)
3
rlwrapを使う場合は、
$ rlwrap gosh
です。
vimrc
依存
- vimproc
- neocomplcache / neocomplete
vimrc
" gauche
NeoBundle 'aharisu/vim_goshrepl'
NeoBundle 'aharisu/vim-gdev'<中略:neocomplateの設定とか>letg:neocomplete#keyword_patterns['gosh-repl'] ="[[:alpha:]+*/@$_=.!?-][[:alnum:]+*/@$_:=.!?-]*"
vimからREPLを実行する
ファイル名は*.scmだったらいいと思ってますw
$ vim sample.scm
vim_goshreplコマンドを実行します。
:GoshREPLWithBuffer
これにより、スクリプトにすでに記述した内容を読み込んだ状態でREPLが開きます。
便利!!