在视觉选择内代替的小错误?

问题描述:

真的没有理由做以下事情(我这样做只是因为我没有想到它),但它可能代表了在视觉选择中执行的替换中的错误。在视觉选择内代替的小错误?

肉眼选择后(v)的文本的量小于线长,并且开始一个取代(:s),以及将所述可视选择原子(\%V),并选择捕获所有正则表达式(.*),则替代字符串看起来像:

:'<,'>s/\%V.*//

(在这里,用一个空格代替一切)。我期望的是视觉选择中的所有内容都被一个空间取代,但事实上,包括视觉选择之外的所有内容在内的整条线都被替换了。所有其他替换限制自己的选择(例如\a*或只是.

我知道有一些细微之处是Vim的正则表达式原子,并且还选择视觉('< VS `<)的视线引导,所以我不当然,如果这是预期的。如果预计,请让我知道。如果没有,那肯定不是什么大事,因为有很多更好的方法可以做同样的事情,但我仍然会继续并发布到vim_dev。

来源:求助%V

为了确保整个模式是里面的可视面积把它在模式

'<,'>s/\%V.*\%V.//

应工作的开始和结束。注意多余的点,这是因为vim由于某种原因排除了选择的最后一个字符。

+0

SMH。我阅读(小)帮助条目至少3次,但不知何故设法跳过最后一句。感谢关于额外点的解释(这看起来像是一个真正的小错误)。 – traycerb 2015-02-11 00:16:29