摆脱系统中的vim输出中的^ @(...)

时间:2017-02-19 11:35:13

标签: vim

我正在尝试将system()调用的结果添加为我使用的其中一个插件(vim-startify)的标头。命令是:

system('vim --version | head -1')

然而,当它被打印时,它最后会有一个额外的字符:^@

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 12 2017 23:20:57)^@

enter image description here

有一个类似的问题here,但它会解决一个文件,而不是缓冲区。

3 个答案:

答案 0 :(得分:2)

只是选择它:system('whatever')[:-2],或者,如果你喜欢更强大的东西 - 如果缺少换行线就不会出现异常 - 你可以申请:substitute(system_result, "\n\\+$", "", "")

请注意,与tr不同,此解决方案适用于所有平台。这就是我们以前用Perl中的chomp()函数做的事情。

答案 1 :(得分:2)

使用Vim 8(或7.4版本):

get(systemlist('vim --version'), 0)

答案 2 :(得分:1)

这可以给你你想要的东西:

system('vim --version | head -1 | tr -d "\n"')

请参阅$ man tr