【问题标题】:In Vim: how do I change a highlighted section?在 Vim 中:如何更改突出显示的部分?
【发布时间】:2011-01-11 10:53:19
【问题描述】:

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

我知道%s 可以解决问题。但我想以/ 的方式走这条路(视觉上的满足感)。

编辑:
我正在寻找c 的扩展器,例如w

编辑:
我想做c选定部分d选定部分y选定部分等。
像你一样cwdwywct”dt”yt”

【问题讨论】:

    标签: vim editing


    【解决方案1】:

    如果您想直观地批准您可以做的每项更改

    :%s/old/new/gc
    

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

    【讨论】:

    • 不,这不是我要找的东西。
    • 我认为我还没有完全理解这个问题。你看起来像宏吗?
    • +1 我认为没有理由投反对票。我支持这个答案。
    • 而且我相信%s/old/new/gc 是您可以在视觉上做某事或不做某事的最接近的。
    【解决方案2】:

    像往常一样使用/foo 查找您的文本,然后使用c//e - 但请确保使用// 而不是仅使用/n 来查找后续匹配项。

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

    【讨论】:

      【解决方案3】:

      使用/ 搜索字符串不会选择它 - 它只会突出显示它。

      要选择文本区域,请单击并将鼠标拖到该区域上或在正常模式下使用vVctrl-v 键(分别通过线条或矩形区域选择正常区域)然后导航使用通常的移动键来扩展选择。这将使您进入视觉选择模式。

      一旦您突出显示了一些文本并处于可视选择模式,您就可以使用正常的编辑命令来更改突出显示的文本,例如c 将删除文本并进入插入模式,y 将拉取文本,gU 将文本更改为大写,g? 将其 ROT13 等等。

      输入编辑命令后,您将返回正常模式,视觉高亮将消失。您可以使用gv 重新选择同一区域。

      【讨论】:

        【解决方案4】:

        试试这个:

        :s//new_value
        

        为什么投反对票?您可以映射如下:

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

        然后搜索您的文本,点击映射,您将进入搜索文本曾经所在的插入模式。你不能使用.,但你可以在下一场比赛中使用n\s

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-14
          • 2011-08-25
          • 2014-09-14
          • 1970-01-01
          • 1970-01-01
          • 2011-05-05
          • 2010-11-17
          • 2010-12-03
          相关资源
          最近更新 更多