从系统(…)中除去vim输出中的^@
我正在尝试将系统调用的结果添加为我使用vim startify的一个插件的头。命令是:从系统(…)中除去vim输出中的^@,vim,Vim,我正在尝试将系统调用的结果添加为我使用vim startify的一个插件的头。命令是: system('vim --version | head -1') 但是,当它被打印出来时,最后会有一个额外的字符:^@ 还有一个类似的问题,但它解决的是一个文件,而不是缓冲区。这应该能满足您的需要: system('vim --version | head -1 | tr -d "\n"') 请参阅$man tr.这将为您提供您想要的: system('vim --version | head -1 |
system('vim --version | head -1')
但是,当它被打印出来时,最后会有一个额外的字符:^@
还有一个类似的问题,但它解决的是一个文件,而不是缓冲区。这应该能满足您的需要:
system('vim --version | head -1 | tr -d "\n"')
请参阅$man tr.这将为您提供您想要的:
system('vim --version | head -1 | tr -d "\n"')
请参阅$man tr.只需咀嚼它:system'Whatch'[:-2],或者,如果您喜欢更健壮的东西,如果换行符丢失,不会出现错误,您可以应用:substitutesystem\u result,\n\\\+$
请注意,与tr不同,此解决方案适用于所有平台。这就是我们在Perl中使用chomp函数时所做的。只要chomp它:system'whatever'[:-2],或者,如果您喜欢更健壮的东西,如果换行符丢失不会出现错误,您可以应用:substitutesystem\u result,\n\\\+$
请注意,与tr不同,此解决方案适用于所有平台。这就是我们在Perl中使用chomp函数时所做的。在Vim 8或7.4的最新版本中:
get(systemlist('vim --version'), 0)
对于Vim 8或最新的7.4版本:
get(systemlist('vim --version'), 0)
我们并不需要get,因为systemlist总是会返回一些东西。systemlist'vim-version'[0]就足够了。不管怎么说,很高兴知道systemlist在新行后面大吃一惊。谢谢。系统列表将始终返回一些内容。-除非出于任何原因返回空列表。那么…[0]是一个错误:我的错误。我在考虑这个特殊情况,要么找不到vim,要么vim-version应该返回一些东西。在一般情况下,您是完全正确的。我们并不需要get,因为systemlist总是会返回一些内容。systemlist'vim-version'[0]就足够了。不管怎么说,很高兴知道systemlist在新行后面大吃一惊。谢谢。系统列表将始终返回一些内容。-除非出于任何原因返回空列表。那么…[0]是一个错误:我的错误。我在考虑这个特殊情况,要么找不到vim,要么vim-version应该返回一些东西。在一般情况下,你是完全正确的。