Vimscript:如何将参数与使用read的函数一起使用?
我刚开始学习Vimscript 我想编写一个函数,在拆分中打开bash函数的输出 如果我执行类似于Vimscript:如何将参数与使用read的函数一起使用?,vim,Vim,我刚开始学习Vimscript 我想编写一个函数,在拆分中打开bash函数的输出 如果我执行类似于:calloutputscript(“echo'hello'”)的操作,我希望打开一个包含“hello”的新缓冲区 我尝试了以下代码: function! OutputScript(cmd) if winbufnr(2) == -1
:calloutputscript(“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
如果我:调用OutputScript(“echo'hello')
,我的输出窗口如下所示:
bash: a:cmd: command not found
我需要使用什么语法将
cmd
用作read
的参数?只需替换read!a:cmd
by:
exe "read! ".a:cmd
与大多数vim命令一样,read
命令不需要vim变量。为了在通用命令中使用变量,必须将其“封装”到exe
命令中,该命令可以理解任何vim表达式
是用于连接两个字符串的vim运算符。是的,可以使用无法启动任何其他命令的每个快捷方式;所以exe
,exec
,execu
。。。可以使用,但不能使用ex
,因为有exit
和exusage
命令。当您对vim更为熟悉时(甚至在此之前),您确实应该尝试Quickrun插件,这在很多方面帮助你从外部语言中获得输出:谢谢,这真的很有用,也是我想要的。我使用vim有一段时间了,但直到现在我才开始在vimscript和插件上投入时间来提高效率。