merlinとdeopleteでocamlのコードを補完させる
vimでocamlを書くときに補完させたかった。
ただ動かすだけならば次を参考にすればよい。
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をした