Vimscript:如何使用带有read的函数的参数?

时间:2015-07-18 21:41:09

标签: vim

我刚开始学习Vimscript。

我想编写一个在拆分中打开bash函数输出的函数。

如果我执行:call OutputScript("echo 'hello'")之类的操作,我想要打开一个新的缓冲区,其中包含“hello”。

我尝试了以下代码:

function! OutputScript(cmd)                                                      
   if winbufnr(2) == -1                                                       
     silent vsplit output                                                     
   else                                                                       
     silent wincmd l                                                          
   endif                                                                      
   silent normal ggdG                                                         
   read! a:cmd
endfunction       

如果我:call OutputScript("echo 'hello'"),我的输出窗口如下所示:

bash: a:cmd: command not found

使用cmd作为read的参数需要什么语法?

1 个答案:

答案 0 :(得分:3)

Juste将read! a:cmd替换为:

exe "read! ".a:cmd

read命令,与大多数vim命令一样,不要求vim变量。为了在常见命令中使用变量,你必须"封装"它成为exe命令,可以理解任何vim表达式。

.是用于连接两个字符串的vim运算符。