如何在vimscript中获取最后一条回显消息?

时间:2011-03-26 10:27:58

标签: vim

有没有办法将最后一条回音信息检索到变量?
例如:如果我调用函数,那么:

echo 'foo'

我可以以某种方式将此'foo'检索到变量中吗? 谢谢!

1 个答案:

答案 0 :(得分:10)

您无法检索上次回显的讯息。但还有其他选择:

  1. 如果您可以在此函数调用之前放置:redir命令,而在此之后放置另一个命令,则可以捕获它回显的所有内容。但请注意,重定向不会嵌套,因此如果函数本身使用:redir,您可能什么也得不到:

    redir => s:messages
    echo "foo"
    redir END
    let s:lastmsg=get(split(s:messages, "\n"), -1, "")
    
  2. 如果函数使用:echomsg而不是:echo,那么您可以使用:messages命令和:redir

    echom "foo"
    redir => s:messages
    messages
    redir END
    let s:lastmsg=get(split(s:messages, "\n"), -1, "")