【问题标题】:Vim - possible to 'Change 2nd Word In quotes'?Vim - 可以'更改引号中的第二个单词'?
【发布时间】:2014-10-15 17:17:35
【问题描述】:

这可以说是一种微优化,但考虑到以下几点:

<div class="ClassOne ClassTwo">Content</div>

使用 Vim,并将光标放在该行的任意位置,我想知道是否有办法使用更改操作更改引号中的第二个单词?我意识到我可以跳到那里并以多种方式删除该单词(fTcaw 为例)但想知道是否有一种在上下文中使用 Change 的方法(而不仅仅是查找和更改该特定单词)?

我尝试了 c2wi"cw2i" 但没有任何乐趣。有没有办法使用'change in'或者总是删除里面的所有内容?

【问题讨论】:

  • 文本对象是内引号。我认为您不能将文本对象与动作结合起来(这似乎是您正在尝试做的事情)。如果您愿意,可以编写自定义文本对象。
  • 好吧,这是我的怀疑。我将看看编写一个自定义文本对象。

标签: vim textselection


【解决方案1】:

示例解决方案:

$Bcw

更通用的解决方案:

  • ^ - 将光标从“该行的任何位置”重新定位到开头
  • f" - 转到第一个引用,如果需要,使用 ; 跳转到包含多个引用块的行
  • W - 移动到下一个 WORD 的开头(比 2w 少一个键)
  • cw - 换字

变化:

  • 对于第一个单词,使用w 而不是W
  • 对于第三~n个单词,多次使用w或在其前面加上一个数字,例如3w
  • 从引号末尾向后迭代:$F"b

【讨论】:

    【解决方案2】:

    创建一个简单的宏怎么样?

    qa + 做你选择的标记 0f"wwcw + 退出 makro q

    在任意线路上调用 makro @a

    【讨论】:

    • 是的,这是一种可能性,但这不是一种“表达”方式。例如,如果我想更改引号中的第三个单词或引号中的第一个单词怎么办。只是想知道是否有办法使用 Vim 的核心语言来做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多