我正在尝试将system()
调用的结果添加为我使用的其中一个插件(vim-startify)的标头。命令是:
system('vim --version | head -1')
然而,当它被打印时,它最后会有一个额外的字符:^@
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 12 2017 23:20:57)^@
有一个类似的问题here,但它会解决一个文件,而不是缓冲区。
答案 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
。