在Vim中使用OCaml的当前设置是什么?

23 vim ocaml

我从未使用过Vi或Vim,但它似乎是编辑OCaml文件的最佳选择.不幸的是我迷失了很多东西需要关注:ocaml-vi-addon,vi-scripts,otags等.

我打破了我最初对使用奶油的Vim的恐惧,但我怀疑我是否需要除了vim脚本以外的任何软件包*.

  • - >我使用Debian,也许这个信息没用

rgr*_*erg 24

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 - 代码格式

  • 你也可以在你的答案中添加[ocp-indent](https://github.com/OCamlPro/ocp-indent). (3认同)

Tho*_*ard 14

将这些行放在〜/ .vimrc文件中:

filetype indent on
filetype plugin on
au BufRead,BufNewFile *.ml,*.mli compiler ocaml
syntax on
Run Code Online (Sandbox Code Playgroud)

然后你会得到一些不错的快捷方式:

  • \s 在.ml和.mli文件之间切换
  • \c评论当前行/选择(\C取消注释)
  • %跳转到匹配let/in,if/then等(参见参考资料:h matchit-install)
  • \t告诉你光标下的东西的类型(如果你编译-annot)

此外,Vim然后可以解析编译器的输出并跳转到正确的位置.

  • 值得注意的是,这需要Vim7.4才能工作. (2认同)

N. *_*nez 7

答案很旧,我认为这个线程需要更新,因为LSP作为事实标准的引入最近彻底改变了旧的文本编辑器(vim、emacs...等)。

LSP(类似于 IDE 的功能,例如自动完成、重构等)

当前最先进的是使用官方 OCaml 语言服务器: https: //github.com/ocaml/ocaml-lsp

您可以将 coc.nvim 用于 Vim8+ 和 Neovim 并将其配置为使用 ocaml-lsp: https: //github.com/neoclide/coc.nvim/wiki/Language-servers#ocaml-and-reasonml

或者,您可以使用最新的 Neovim nightly (0.5+) 作为 OCaml 语言服务器的客户端,而不是 coc.nvim: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