27

私はViやVimを使ったことがありませんが、OCamlファイルを編集するのに最適なオプションのようです。残念ながら、私は気にかけるべき多くのことで迷子になっています:ocaml-vi-addon、vi-scripts、otagsなど。

クリームを使ってVimに対する最初の恐怖を打ち破りましたが、vim-scripts以外のパッケージ*が必要かどうかは疑問です。

  • ->私はDebianを使用していますが、この情報は役に立たないかもしれません
4

7 に答える 7

28

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-コードのフォーマット

于 2013-03-20T04:59:30.787 に答える
15

これらの行を〜/.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はコンパイラーの出力を解析し、正しい場所にジャンプすることができます。

于 2013-06-21T11:28:49.173 に答える
3

これらの理由から、編集者からのサポートが必要です。

  1. 構文の強調表示/折りたたみによるより良いプレゼンテーション
  2. より良い自動インデント
  3. バックグラウンドコンパイル、構文の強調表示(再度)、またはその他の方法でエラーを早期に発見
  4. インラインデバッグ
  5. 使用可能な名前/メソッドを一覧表示したり、オブジェクトタイプを確認したりするためのイントロスペクション。

1と2の場合、デフォルトで十分ですが、より良い仕事をしようとするこのocp-indentプラグインがあります。

3の場合、私は構文の強調表示に頼っていますが、vimにとってこれ以上のことは何も知りません。

インラインデバッグに関しては、コマンドラインからocamldebugを使用することができなかったため、エディターから試したことはありません。

イントロスペクションに関しては、READMEで説明されているようにvimプラグインとしてインストールできるannotプログラムを十分にお勧めすることはできません。

インストールすると、2回のキーストロークでカーソルの下にあるもののタイプを取得できます。これは、最も複雑なタイプを推測できる言語にとって非常に便利です。

于 2013-03-20T08:17:01.397 に答える
3

答えはかなり古いです。デファクトスタンダードとしてのLSPの導入により、最近古いテキストエディタ(vim、emacs ...など)に革命が起こったため、このスレッドを更新する必要があると思いました。

LSP(自動完了、リファクタリングなどのIDEのような機能)

現在の最先端技術は、公式の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

ボーナス2:vimrcとinit.vim

私のinit.vim、.vimrcとしても互換性があります: https ://github.com/nicobao/setup/blob/master/vim/init.vim

素晴らしいvimmerの.vimrc/init.vim: https ://github.com/awesome-streamers/awesome-streamerrc

于 2020-10-17T13:03:15.570 に答える
1

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"
于 2019-01-31T21:16:07.737 に答える
1

言及する価値のあるもう1つの代替手段は、VimベースのエディターであるOnivimです。これは、を介してOCamlとReasonMLをすぐにサポートしocaml-lspます。

そのフロントエンドは実際にはOCaml(まあ、ReasonML)で書かれており、バックエンドでVim(libvim)のフォークを使用しています。まだアルファ版であり、完全なVimエクスペリエンスをまだ提供していませんが、私はすでに約1年間フルタイムで使用しています。

これも商用製品ですが、非商用使用および時間遅延のあるオープンソースは無料です。

(完全な免責事項:私は以前Onivimに取り組んでいましたが、執筆時点ではそうではありません)

于 2020-10-17T13:43:03.500 に答える
0

OmletはVimの良いモードでした:作者のページvim.org。2005年以降に新しいバージョンがない場合は、ニーズに合う可能性があります。やってみたら、どう思うか教えてください!

于 2013-03-20T08:30:19.240 に答える