我正在寻找一个VimScript函数,它可以在字符串之前删除任何尾随或前导空格。
答案 0 :(得分:27)
由于8.0.1630 vim有trim()
。
对于旧版本:假设您尝试对vimscript中的变量执行此操作,则可以执行此操作:
let new_var = substitute(var, '^\s*\(.\{-}\)\s*$', '\1', '')
如果您愿意,您可以随时使自己成为自己的职能:
function! Strip(input_string)
return substitute(a:input_string, '^\s*\(.\{-}\)\s*$', '\1', '')
endfunction
let new_var = Strip(var)
答案 1 :(得分:6)
由于8.0.1630 vim具有内置的trim()
函数来执行此操作。从文档中:
trim({text}[, {mask}])
Return {text} as a String where any character in {mask} is removed from the beginning and end of {text}. If {mask} is not given, {mask} is all characters up to 0x20, which includes Tab, space, NL and CR, plus the non-breaking space character 0xa0. This code deals with multibyte characters properly.
因此,调用trim(var)
将删除var
中的前导空格和尾随空格。