Emacs,Evil-Mode:仅在视觉选择/视觉块中替换?

时间:2014-11-25 11:36:58

标签: emacs replace selection evil-mode

默认情况下,: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次匹配。)

事先谢谢。

1 个答案:

答案 0 :(得分:6)

您可以通过指定范围在视觉选择中进行替换。 '<,'>适用于选择的最后一行的第一行,`<,`>适用于第一个字符到最后一个字符。所以在你的第一个例子中

a b |c d e| f g`, 

使用:`<,`>s/ //g会给你

a b cde f g

不幸的是,Evil目前似乎不支持Visual Block中的替换,因此没有简单的方法来替换它。