我刚开始学习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
的参数需要什么语法?
答案 0 :(得分:3)
Juste将read! a:cmd
替换为:
exe "read! ".a:cmd
read
命令,与大多数vim命令一样,不要求vim变量。为了在常见命令中使用变量,你必须"封装"它成为exe
命令,可以理解任何vim表达式。
.
是用于连接两个字符串的vim运算符。