vimでOCamlの開発環境の構築
どうやっても、typerexをうまく動かせられなかったのでvimでやることにした。
構築した環境はMac OS X 10.9.2です。Homebrew導入済みの前提です。
OCamlとOMake、OCamlSpotterのインストール
$ brew install opam
$ opam init
$ opam switch 4.01.0
$ opam install omake
$ opam install ocamlspot
opamはOCaml自体やライブラリをインストールしたり管理出来るツール。Rubyでいうとrvmとgemがセットになった感じのツール。
プロジェクトの作成
## omake 初期化 $ mkdir project $ cd project $ omake –install
OMakefile編集
``` .PHONY: all install clean run
USE_OCAMLFIND = true
FILES[] = main
PROGRAM = main OCAMLFLAGS += -annot -bin-annot .DEFAULT: run
all: $(OCamlProgram $(PROGRAM), $(FILES))
clean: rm -fr *~ $(PROGRAM) *.opt *.cmi *.cmx *.o *.omc *.cmt *.annot
run: all ./$(PROGRAM) ```
main.mlを-annot -bin-annot オプション付けてコンパイルし、コンパイル後に実行もするという設定。
main.ml作成
``` let hello name = print_string name;;
hello “My Name\n”;; ```
コンパイル&実行
$ omake ``` *** omake: reading OMakefiles *** omake: finished reading OMakefiles (0.00 sec) - build . <run> + ./main My Name *** omake: done (0.02 sec, 0/1 scans, 1/6 rules, 0/41 digests) ```
vimの設定
## the-ocamlspotプラグインを入れる
.vimrc
NeoBundle 'cohama/the-ocamlspot.vim'
NeoBundleをvimで使えるようにしておく必要があるので、次のサイトなどを参考にする。 本の虫:neobundle.vimのインストール方法
omakeでファイルの変更を監視
$ omake -P
この状態で、vimでmain.mlを編集して保存すると変更を検知して自動でビルド実行される。 またビルド時に-annot -bin-annot オプションを指定することで生成されるファイルを、the-ocamlspotプラグインが読み込んで解釈してくれる。 main.mlのhelloの上にカーソルを置いて、しばらく待つとvimの下側にhelloの型が表示される。このプラグイン自体の解説は作者様のこの記事で。
OCaml のソースコードの型を表示したり定義にジャンプしたりする Vim のプラグイン作った - 反省はしても後悔はしない