私はViやVimを使ったことがありませんが、OCamlファイルを編集するのに最適なオプションのようです。残念ながら、私は気にかけるべき多くのことで迷子になっています:ocaml-vi-addon、vi-scripts、otagsなど。
クリームを使ってVimに対する最初の恐怖を打ち破りましたが、vim-scripts以外のパッケージ*が必要かどうかは疑問です。
- ->私はDebianを使用していますが、この情報は役に立たないかもしれません
OCamlのデフォルトモードは本当にそこにあるすべてです。次のプラグインの使用を検討できます。
https://github.com/scrooloose/syntastic-構文チェック
https://github.com/def-lkb/merlin-オートコンプリート
https://github.com/jpalardy/vim-slime-repl統合
https://github.com/OCamlPro/ocp-indent-コードのフォーマット
これらの行を〜/.vimrcファイルに入れます。
filetype indent on
filetype plugin on
au BufRead,BufNewFile *.ml,*.mli compiler ocaml
syntax on
次に、いくつかの素晴らしいショートカットを取得します。
\s
.mlファイルと.mliファイルを切り替えます\c
現在の行/選択\C
にコメントします(コメントを外します)%
一致するlet/in、if / thenなどにジャンプします(を参照:h matchit-install
)\t
カーソルの下にあるもののタイプを示します(でコンパイルした場合-annot
)また、Vimはコンパイラーの出力を解析し、正しい場所にジャンプすることができます。
これらの理由から、編集者からのサポートが必要です。
1と2の場合、デフォルトで十分ですが、より良い仕事をしようとするこのocp-indentプラグインがあります。
3の場合、私は構文の強調表示に頼っていますが、vimにとってこれ以上のことは何も知りません。
インラインデバッグに関しては、コマンドラインからocamldebugを使用することができなかったため、エディターから試したことはありません。
イントロスペクションに関しては、READMEで説明されているようにvimプラグインとしてインストールできるannotプログラムを十分にお勧めすることはできません。
インストールすると、2回のキーストロークでカーソルの下にあるもののタイプを取得できます。これは、最も複雑なタイプを推測できる言語にとって非常に便利です。
答えはかなり古いです。デファクトスタンダードとしてのLSPの導入により、最近古いテキストエディタ(vim、emacs ...など)に革命が起こったため、このスレッドを更新する必要があると思いました。
現在の最先端技術は、公式のOCaml言語サーバーを使用することです: https ://github.com/ocaml/ocaml-lsp
Vim8 +とNeovimにはcoc.nvimを使用し、ocaml-lspを使用するように構成できます: https ://github.com/neoclide/coc.nvim/wiki/Language-servers#ocaml-and-reasonml
または、coc.nvimの代わりに、最新のNeovimナイトリー(0.5+)をOCaml言語サーバーのクライアントとして使用できます:https ://github.com/neovim/nvim-lspconfig#ocamllsp
構文の強調表示を改善するには、vim-ocamlを使用します: https ://github.com/ocaml/vim-ocaml
または、vim-ocamlはvim-polyglotに埋め込まれているため、vim-ocamlを個別にインストールする必要はありません: https ://github.com/sheerun/vim-polyglot
これは、ツールとOCamlプラットフォーム全般に関して、コミュニティが今後数年間どこに向かっているのかを説明する素晴らしいビデオです: https ://www.youtube.com/watch?v=E8T_4zqWmq8&t
私のinit.vim、.vimrcとしても互換性があります: https ://github.com/nicobao/setup/blob/master/vim/init.vim
素晴らしいvimmerの.vimrc/init.vim: https ://github.com/awesome-streamers/awesome-streamerrc
https://github.com/ocaml/merlin/wiki/vim-from-scratchに本当に素晴らしいガイドがあります
Stack Overflowはリンクのみの回答を評価しないため、ここにコマンドがありますが、実際には、そのページにアクセスして洞察とコンテキストを確認してください。
opam install merlin
これを.vimrcに追加します:
let g:opamshare = substitute(system('opam config var share'),'\n$','','''')
execute "set rtp+=" . g:opamshare . "/merlin/vim"
言及する価値のあるもう1つの代替手段は、VimベースのエディターであるOnivimです。これは、を介してOCamlとReasonMLをすぐにサポートしocaml-lsp
ます。
そのフロントエンドは実際にはOCaml(まあ、ReasonML)で書かれており、バックエンドでVim(libvim)のフォークを使用しています。まだアルファ版であり、完全なVimエクスペリエンスをまだ提供していませんが、私はすでに約1年間フルタイムで使用しています。
これも商用製品ですが、非商用使用および時間遅延のあるオープンソースは無料です。
(完全な免責事項:私は以前Onivimに取り組んでいましたが、執筆時点ではそうではありません)