像" da"那不会删除空格

时间:2015-01-16 16:23:33

标签: vim

我有一些这样的文字:

foo<space><space><space>'bar'

当我在da''bar'时,会删除空格:

foo

如何在不移除空格的情况下执行da',所以我得到了这个结果?

foo<space><space><space>

2 个答案:

答案 0 :(得分:4)

我在text-objects上的vim帮助主题中找到了这个:

i"                          *v_iquote* *iquote*
i'                          *v_i'* *i'*
i`                          *v_i`* *i`*
            Like a", a' and a`, but exclude the quotes and
            repeating won't extend the Visual selection.
            Special case: With a count of 2 the quotes are
            included, but no extra white space as with a"/a'/a`.

因此,执行以下操作不会删除空格。

d2i'

有关文本对象的更多帮助,请执行:help text-objects

答案 1 :(得分:2)

这涵盖在:help v_i'

  

对于“a”命令:操作符适用于对象和白色     对象之后的空间。如果对象后面没有空格     或者当光标在对象之前的白色空间中时,白色     包含对象之前的空格。

所以,问题在于你处于最后阶段。要更改行为,可以添加空格,返回,然后发出命令:A<Space><Esc>hda'

或者,使用内部对象,然后删除两个引号,如di'hxx中所示。

对于引用文本对象,甚至还有一个方便的特殊情况,因此 d2i'看起来像赢家

  Special case: With a count of 2 the quotes are
  included, but no extra white space as with a"/a'/a`.