我想在编写Erlang代码时使用Vim作为编辑器。 我成功安装了vim中的Erlang插件,并且想知道是否有可能在vim中编译当前缓冲区?例如,在Emacs中,您可以使用Ctrl C + Ctrl L键组合启动Erlang shell。那么在Vim中是否有类似方式启动Erlang shell并编译当前缓冲区的选项?
在Vim中快速执行shell命令,可以使用:!command -a -b arg1
命令(例如::!ls -l
,:!erl %
)。
但是Emacs不同于Vim,它们背后有不同的理念。Vim只是具有编程扩展功能的文本编辑器,并非终端内部(就像俄罗斯方块和M-x doctor
一样)。
Vim维护者拒绝将完整的终端实现添加到Vim本身中(有关更多详细信息,请参见:help shell-window
)。
如果您仍然想要一个缓冲区内的shell,则可以查看ConqueTerm,但它不会无缝地工作。我尝试过它,但更喜欢使用tmux
/screen
将我的控制台屏幕划分为窗口。
我在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
:!erl %
- 这是运行 shell 命令的标准 vim 方式。 - Dmytro Sirenko