我试图删除前导和功能尾部的空格,但它不工作:Vim的 - 消除领先,并在功能尾随空格
function Trim(s)
echo ">>>".a:s."<<<"
let ss = substitute(a:s, '\v^\s*([^\s]+)\s*$', '\1', '')
echo ">>>".ss."<<<"
endfunction
更换\s*([^\s]+)\s*
工程确定的正则表达式*与+没有任何区别。
测试:
: call Trim(" testing ")
输出:
>>> testing <<<
>>> testing <<<
而且似乎如果我使用双引号对在替代功能单引号无所谓。
问题在哪里?如何解决?谢谢。
到目前为止,我* *评论'\ s',tx罗曼。请注意,这个集合的解释似乎是vim特定的?!我发现使用相同的解释唯一的正则表达式是POSIX。 –
这很好地解释了这个问题。如果用双引号而非单引号括起来,我也会发现解决方案不起作用。什么原因? (根据这里的答案https://stackoverflow.com/questions/13435586/should-i-use-single-or-double-quotes-in-my-vimrc-file,我期望在这里需要双引号)。 – rnso
实际上,在文档http://vimdoc.sourceforge.net/htmldoc/eval.html#substitute%28%29中,正在使用双引号。 – rnso