默认情况下,:s/[search-term]/[replace-term]
适用于整行,而不是视觉选择。例如,如果您在c和e之间进行选择,那么:
a b |c d e| f g
并执行:s/ //g
,结果是:
abcdefg
而不是
a b cde f g
同样,在视觉区块选择中:
a b |c d e| f g
0 1 |2 3 4| 5 6
:s/ //g
收益
abcdefg
0123456
而不是
a b cde f g
0 1 234 5 6
有没有人有办法让邪恶模式的:s/
仅适用于选择(最好是默认情况下,或者使用关键字如vim \%V
)?
(:s/\%V //g
在这种情况下似乎不起作用;它会导致0次匹配。)
事先谢谢。
答案 0 :(得分:6)
您可以通过指定范围在视觉选择中进行替换。 '<,'>
适用于选择的最后一行的第一行,`<,`>
适用于第一个字符到最后一个字符。所以在你的第一个例子中
a b |c d e| f g`,
使用:`<,`>s/ //g
会给你
a b cde f g
不幸的是,Evil目前似乎不支持Visual Block中的替换,因此没有简单的方法来替换它。