回显时间戳附加烦人的“^@”

echoing timestamp appends annoying "^@"

i 运行 这个命令 :echom system("date")<CR> 在 vim.

我的预期输出是这样的:Sat Jan 10 12:28:58 CET 2015

但它总是附加一个烦人的 ^@

所以输出是这样的:Sat Jan 10 12:28:58 CET 2015^@

为什么?

我怎样才能轻松避免这种情况?

当我在终端中 运行 date 时,它给了我预期的输出。当然还有一个换行符 (*1)。所以我猜 ^@ 来自换行符,对吧?

i 运行 vim debian 7.3(来自官方存储库的版本)在终端版本中,(不是 gui 版本!)在 gnome-terminal with utf-8编码。


(*1):提示如下所示

user@host$ date
Sam Jän 10 12:28:58 CET 2015
user@host$

不是这样的:

user@host$ date
Sam Jän 10 12:28:58 CET 2015user@host$

^@ 确实来自 date 以换行符 (\n) 结尾的事实。
您可以:

  • 删除尾随字符(这只会输出预期的结果如果命令以换行符结尾):

    :echom system("date")[:-2]

  • 替换尾随的 \n(有点冗长):

    :echom substitute(system("date"), '\n$', '', '')