SICPを読むためにGaucheをVimから使えるようにした

  • 26
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

社内でSICP(計算機プログラムの構造と解釈:Structure and Interpretation of Computer Programs)を読もうということで、SchemeはGaucheがいいという噂を元にVimで環境を構築してみました。

正直また読み始めだし、Emacsの方がいいよ!って噂を聞きつつも慣れ親しんだVimで環境を構築して見ます。

GacuheのInstall

brew install gauche
brew 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の設定とか>

let g:neocomplete#keyword_patterns['gosh-repl'] = "[[:alpha:]+*/@$_=.!?-][[:alnum:]+*/@$_:=.!?-]*"

vimからREPLを実行する

ファイル名は*.scmだったらいいと思ってますw

$ vim sample.scm

vim_goshreplコマンドを実行します。

:GoshREPLWithBuffer

これにより、スクリプトにすでに記述した内容を読み込んだ状態でREPLが開きます。

0DyqNxK9ZK.gif

便利!!

参考

http://valvallow.blogspot.jp/2013/07/re-lisper-gauche.html