2017-06-14 84 views
0

我正在使用vim-test 我試圖構建一個使用MakeGreen插件的測試策略。如何將一個shell命令輸出到一個vim函數中?

該命令是:TestFile | MakeGreen()哪些工作,但這是問題。

function! MakeGreenStrategy(cmd) abort 
    execute '!'.a:cmd " this is a shell command which I would like to pipe into a vim function called MakeGreen() 
endfunction 

那麼,什麼是shell命令的輸出通過管道到像第一個命令Vim的功能,但在Vimscript中的函數的正確方法。

回答

0

您正在尋找system()

注意:您需要修剪尾隨的換行符。請參閱Get rid of ^@ in vim output from system(...)

+0

謝謝,但'system'不允許我調用TestFile這是一個vim函數(並且該函數調用是生成shell命令的函數)。 – static

+0

這個shell命令的輸出是我試圖再次回到vim函數中的,所以這個工作從vim的ex模式':TestFile | MakeGreen'。 – static

+0

您不能在vim命令行中使用bar(':h bar')管道命令。你將不得不考慮第一個vim用戶命令將解釋的另一個字符。否則,你可以做的是':echo somevimfunction(systemlist('external command'))''。 –

相關問題