如何在Vim中启动Erlang shell

4

我想在编写Erlang代码时使用Vim作为编辑器。 我成功安装了vim中的Erlang插件,并且想知道是否有可能在vim中编译当前缓冲区?例如,在Emacs中,您可以使用Ctrl C + Ctrl L键组合启动Erlang shell。那么在Vim中是否有类似方式启动Erlang shell并编译当前缓冲区的选项?


1
我正在使用这个插件:vimerl - Vombat
只需使用 :!erl % - 这是运行 shell 命令的标准 vim 方式。 - Dmytro Sirenko
哦,自动编译。我使用 sync,它可以在编辑器之外完成所有混乱的工作。 - l04m33
2个回答

5

在Vim中快速执行shell命令,可以使用:!command -a -b arg1命令(例如::!ls -l:!erl %)。

但是Emacs不同于Vim,它们背后有不同的理念。Vim只是具有编程扩展功能的文本编辑器,并非终端内部(就像俄罗斯方块和M-x doctor一样)。

Vim维护者拒绝将完整的终端实现添加到Vim本身中(有关更多详细信息,请参见:help shell-window)。

如果您仍然想要一个缓冲区内的shell,则可以查看ConqueTerm,但它不会无缝地工作。我尝试过它,但更喜欢使用tmux/screen将我的控制台屏幕划分为窗口。


这意味着每次我需要编译代码时都要切换到shell,然后再回到Vim进行编辑吗?难道不可能在同一个地方拥有两个窗口,例如在Vim内使用两个不同的窗口吗? - Vombat
@AKh_Sw 在 tmux/screen 的窗口中可以同时拥有两者,但在默认的 Vim 配置中不行。 - Dmytro Sirenko
啊,令人失望!也许我应该试着在网络上找到一种解决方案来提高Emacs图形性能。 - Vombat
1
如果你遇到了 Emacs 在网络上的图形性能问题,你可以尝试使用“emacs -nw”以非图形模式运行。 - Bernard Notarianni

0

我在vim中使用vimerl插件进行erlang开发。然而,我不得不对它进行小改动以改进它的编译方式。

一旦我做出这些改变,写入文件(例如使用:w)会导致vimerl编译该源文件并将警告/错误放入快速修复列表(如果您有一个Makefile,则与:make完全相同)。

顺便说一下,我还在我的vimrc中进行了以下配置:

let g:erlangHighlightErrors = 1
let g:erlangHighlightBif = 1
let g:erlangCompletionDisplayDoc = 1
let g:erlangWranglerPath = "/usr/local/share/wrangler"
let g:erlangRefactoring = 1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接