Answers:
您可以使用substitute()
或定义一个函数:
function! Chomp(string)
return substitute(a:string, '\n\+$', '', '')
endfunction
这个变体会要求system
您,然后将结果压缩:
function! ChompedSystem( ... )
return substitute(call('system', a:000), '\n\+$', '', '')
endfunction
(此功能也可以在我的ingo-library插件中使用ingo#system#Chomped
。)
Chomp()
正在传递它传递的任何参数,所以system()
从其输出中删除尾随的换行符,然后将其返回。
system()
有一个可选{input}
参数,并且可以通用地处理其中的任何一个。如果您不需要此功能,请按照常规方式进行。
let @z = systemlist('date')[0]
为您删除换行符。
\n
换行符以外的内容的系统将无法正常工作。 systemlist()
仅删除\n
,而不删除任何\r
。
\r\n
行尾的类型...
\n
在返回它们之前会将其归一化。
call
语法很奇怪?为什么不给Chomp
一个名为参数string
,然后传递a:string
到substitute
?