neo在Vim中,将光标直接移动到直线上的字符之前



假设我有以下内容:

text function(contents) text

我希望它是

text function() text

将光标放在左括号之后,我认为以下命令可以使用df);然而,我最终得到的是以下

text function( text

因此,我需要某种方法来指定我想要的字符刚好在右括号之前,但我不确定如何做到这一点。也许还有更好的方法可以做到这一点。

对此,最好的方法是什么?

你很接近!您需要dt),如d删除t)

f动作将光标放在)上(记住它就像find一样(

至于"最好"的方法,至少有一种更通用的方法:光标位于()中间的某个位置(或在其中一个位置上(可以执行di)(或等效di((到d删除i)

如果执行da)(或等效da((到d删除a循环),则删除括号之间的内容。

di[di{di<di'di"等也是如此。使用这些所谓的与d{motion}方式相反,文本对象的优势在于在其他方括号/引号对上重复编辑,而无需使用光标完全在同一个地方——它只需要在它们之间。

在下文中,您可以将光标定位在例如中"initial"的"i"上第一行,执行di)删除单词"一些初始文本",然后移动将光标移到第二行"more"中的"e",然后执行.即可删除单词"更多文本"(:

(some initial text)
(some more text)

当括号(或引号(位于不同的行时,这种方式也适用。对于例如,当光标位于{}之间时,执行di}将发生变化这个:

function( args ) {
body of function
}

到此:

function( args ) {
}

最新更新