【问题标题】:vim search and replace from the current location of the cursor to a specified tokenvim 从光标当前位置搜索替换到指定标记
【发布时间】:2017-03-11 14:54:32
【问题描述】:

我想要一个 vi 命令,它将光标位置替换为给定标记。例如以

开头
 word  blah blah     =(

如果我将光标定位在word 之后的空格处,我希望能够将光标和等号之间的所有内容替换为 #, 获得

  word#(

我确定如果我能理解this thread,我可以弄明白,但那个线程比我需要的要复杂得多。

【问题讨论】:

    标签: search vim replace


    【解决方案1】:

    尝试以下方法:

    cf=#<esc>
    

    c 命令是“更改”,它会删除文本并将您置于插入模式。就像其他操作员一样,它需要一个动作。 f= 是一种将光标跳转到下一个出现“=”的动作。这适用于任何其他字符,例如,fa 将跳转到下一个“a”,fb 将跳转到下一个“b”等。之后,您将进入插入模式,并且可以输入#。然后只需点击&lt;esc&gt; 即可返回正常模式。

    您可以使用/foo 而不是f= 来使用更高级的“令牌”来做同样的事情。例如,如果您想更改直到下一次出现 =( 而不是下一次出现 =,您可以这样做

    c/=(<cr>#<esc>
    

    【讨论】:

    • 可能值得注意的是 f/Ft/T 仅适用于当前行。要跨多行执行此操作,您需要使用搜索 (/)。
    【解决方案2】:

    除非光标和所需的= 之间有其他= 字符,否则您可以使用cf=#&lt;Esc&gt;

    cf= 从光标删除直到第一个=(包括),并将您置于插入模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      • 2011-09-19
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多