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?