【问题标题】:Why does c/_<CR> behave differently from cf_?为什么 c/_<CR> 的行为与 cf_ 不同?
【发布时间】:2021-05-10 05:33:09
【问题描述】:

假设我的缓冲区中有文本some_func,而我的光标位于s

如果我输入c/_&lt;CR&gt;(其中&lt;CR&gt; 表示[Enter] 键),它会删除文本some 并进入插入模式。如果我输入cf_,它会删除文本some_ 并进入插入模式。不同之处在于/ 保留了_,但f 删除了它。

但是,/_&lt;CR&gt;f_ 的行为相同(都将光标移至下划线),那么为什么它们对于 c 命令的工作方式不同呢?有没有办法可以配置 Vim 以使它们保持一致?

【问题讨论】:

  • 的传统表示法是 &lt;CR&gt;
  • @romainl 谢谢,已更新。

标签: vim


【解决方案1】:

:help / 说:

向前搜索第 [count] 次出现 {模式} |独家|

:help f 说:

向右第 [count] 个 {char} 出现。这 光标位于 {char} |inclusive|

将光标放在|exclusive]|inclusive| 上时按&lt;C-]&gt; 会导致:help exclusive,它表示:

角色动作要么是包容性的,要么是排斥性的。当包含时, 动作的开始和结束位置包含在操作中。什么时候 独占,缓冲区末尾的最后一个字符不包括在内。

请注意,这仅涉及在运算符之后使用的动作,在这种情况下为c,而不是用于移动光标的独立动作。查看:help operator,更深入地了解操作符和动作如何交互。

【讨论】:

  • 感谢您的详细解答!我特别感谢有关如何访问帮助的详细信息(我从未使用过 :help,而且 Ctrl+] 快捷键也很有帮助)。
  • @KerrickStaley 如果您不学习如何使用 Vim,那么您将无法在 Vim 中走得更远。第 1 步:$ vimtutor。第二步::help user-manual.
【解决方案2】:

实际上,c/_⏎ 将更改为下一个 _,即使下一个 _ 在不同的行上,而如果该行的其余部分没有 _cf_ 将什么也不做.看起来这只是 / 用作动作时的一个怪癖;在这种情况下,它更像t 而不是f

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    相关资源
    最近更新 更多