有没有办法将最后一条回音信息检索到变量?
例如:如果我调用函数,那么:
echo 'foo'
我可以以某种方式将此'foo'检索到变量中吗? 谢谢!
答案 0 :(得分:10)
您无法检索上次回显的讯息。但还有其他选择:
如果您可以在此函数调用之前放置:redir
命令,而在此之后放置另一个命令,则可以捕获它回显的所有内容。但请注意,重定向不会嵌套,因此如果函数本身使用:redir
,您可能什么也得不到:
redir => s:messages
echo "foo"
redir END
let s:lastmsg=get(split(s:messages, "\n"), -1, "")
如果函数使用:echomsg
而不是:echo
,那么您可以使用:messages
命令和:redir
:
echom "foo"
redir => s:messages
messages
redir END
let s:lastmsg=get(split(s:messages, "\n"), -1, "")