在Vim中:如何更改突出显示的部分?

时间:2010-01-31 16:03:52

标签: vim editing

cw改变了一个词。同样,如果我在vim中选择了部分(由/找到),如何更改其中一个突出显示的部分,以便我可以在所有其他突出显示的部分中重复(.)该过程。

我知道%s会做到这一点。但我想以/的方式(视觉满意度)来实现这一点。

编辑:
我正在寻找像c

这样的w扩展器

修改
我想做c 所选部分d 所选部分y 所选部分等内容等。
与您一样cwdwywct”dt”yt”

4 个答案:

答案 0 :(得分:3)

像往常一样使用/foo查找文字,然后使用c//e - 但请确保使用//代替/n来查找后续比赛。

//e表示重复上一次搜索,但是光标位于单词的末尾,而不是开头。但是,e标志会被记住以进行下一次搜索,这是为什么之后需要使用//。)

答案 1 :(得分:1)

如果您想要在视觉上批准您可以执行的每项更改

:%s/old/new/gc

修改 从其他答案听起来似乎没有办法轻松获得选择。也许你可以使用Vim中的python脚本功能来编写一个命令来做你想做的事情?

答案 2 :(得分:1)

搜索带有/的字符串不会选择它 - 它只会突出显示它。

要选择文字区域,请点击鼠标并将鼠标拖过它,或在正常模式下使用vVctrl-v键(按行或选择正常区域)然后分别使用通常的移动键导航以扩展选择。这将使您进入视觉选择模式。

一旦您突出显示某些文字并处于视觉选择模式,您可以使用常规编辑命令更改突出显示的文本,例如c将删除文字并将您置于插入模式,y会抽取文字,gU会更改文字大写,g?会ROT13等等。

输入编辑命令后,您将返回正常模式,视觉突出显示将消失。您可以使用gv重新选择相同的区域。

答案 3 :(得分:0)

试试这个:

:s//new_value

为什么选择downvote?您可以映射如下内容:

:nmap \s :s///<cr>``i

然后搜索您的文本,点击映射,您将处于插入模式,您的搜索文本曾经是。您无法使用.,但可以使用n\s进行下一场比赛。

据我所知,没有内置的文本对象描述搜索找到的文本。