2012-12-02 56 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