ちゃっくのメモ帳

ちゃっくがメモしときたいことをメモしとくよ

merlinとdeopleteでocamlのコードを補完させる

vimocamlを書くときに補完させたかった。
ただ動かすだけならば次を参考にすればよい。
vim from scratch · ocaml/merlin Wiki · GitHub

まずはmerlinをインストールした

opam install merlin

ただ、僕は「deopleteを使いたい」「ocamlの設定なのだからできればinit.vim(vimrc)に書きたくない」の要求をもっているのでドキュメントに書かれていることをそのままするわけには行かなかった

そこで、 deinで管理するために上記の

let g:opamshare = substitute(system('opam config var share'),'\n$','','''')
execute "set rtp+=" . g:opamshare . "/merlin/vim"

を使わずに

if executable('opam')
    call dein#add('$HOME/.opam/4.07.0/share/merlin/vim',{
                \ 'on_ft' : ['ocaml'],
                \})
    call dein#add('copy/deoplete-ocaml',{
                \'on_ft' : ['ocaml'],
                \})
endif

とした。
設定も色々書くのがめんどくさかったのでdeoplete-ocamlを使用
github.com

補完時にpreview用のwindowで型が表示されるのが邪魔だったのでftplugin/ocamlにset completeopt-=previewをした