2012-12-02 61 views
4

我想使用Vim作为我的Erlang编码的编辑器。 我设法在vim中安装了Erlang的插件,我想知道是否可以通过 编译vim里面的当前缓冲区?例如在Emacs中,您可以使用Ctrl C + Ctrl L 组合键启动Erlang shell。那么在Vim中有没有其他选择来启动Erlang shell然后编译当前的缓冲区?如何从Vim内部启动Erlang shell

+1

我使用这个插件:[vimerl(https://github.com/jimenezrick/vimerl) – coffeMug

+0

只需使用'! erl%' - 这是运行shell命令的标准vim方法。 –

+0

哦,自动编译。我使用[sync](https://github.com/rustyio/sync.git),它在编辑器外部完成所有杂乱的东西。 – l04m33

回答

5

对于Vim内部的快速shell命令,请使用:!command -a -b arg1(例如:!ls -l:!erl %)。

但Emacs不是Vim,他们在背后有不同的想法。 Vim只是一个带编程扩展的文本编辑器,它不是终端内部的地方(就像俄罗斯方块和M-x doctor)。

Vim维护人员拒绝在Vim中增加一个全面的终端实现(更多细节请参见:help shell-window)。

如果你仍然想要一个in-buffer外壳,你可以看看ConqueTerm,但它不能无缝工作。我尝试过,但更喜欢使用tmux/screen将我的控制台的屏幕属性分割为多个窗口。

+0

这意味着每次我需要编译我的代码时,我应该切换到shell然后回到Vim进行编辑?难道不能在同一个地方使用两个不同的Vim内部窗口吗? – coffeMug

+0

@AKh_Sw可以在tmux/screen的窗口中同时使用,但不能使用默认的Vim配置。 –

+0

啊,令人失望!如果我尝试找到一个通过网络增强Emacs图形性能的解决方案,可能会更好。 – coffeMug

0

我也使用相同的vimerl插件在vim中进行erlang开发。但是,我不得不对它做一个small change来对它编译的检查方式进行一些改进。

有一次,我做这些更改,写入文件(例如,用:w)造成vimerl来编译源文件,并将警告/在quickfix list(完全相同的方式的错误,:make会,如果你有一个Makefile做到位)。

FWIW,我也有下面的配置,我vimrc

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