将光标移动到 Vim 中一行字符的紧前面
Move Cursor Immediately Before a Character on a Line in Vim
假设我有以下内容:
text function(contents) text
我希望它是
text function() text
将光标放在左括号之后,我认为下面的命令可以工作 df)
;然而,我最终得到的是以下内容
text function( text
所以我需要以某种方式指定我想要右括号之前的字符,但我不确定该怎么做。可能还有更好的方法来做到这一点。
解决此问题的最佳方法是什么?
你很接近!你需要 dt)
如 d
elete t
ill )
f
动作将光标放在 )
上(像 f
ind 一样记住它)
至于 'best' 的方法,至少有一种更通用的方法:如果
光标在 (
和 )
中间的某处(或其中之一),你
可以 di)
(或等同于 di(
)到 d
elete i
nside )
如果你da)
(或相当于da(
)到d
elete a
round )
,你会
删除中间的内容,包括括号。
di[
、di{
、di<
、di'
、di"
等也是如此。使用这些所谓的
与 d{motion}
方式相反,文本对象的优点是您可以
对其他 brackets/quotes 对重复编辑,而不需要光标
完全在同一个地方 - 它只需要在它们之上或之间。
在下文中,您可以将光标定位在例如'initial' 中的 'i'
第一行,执行 di)
删除单词 'some initial text',然后移动
将光标移至第二行 'more' 中的 'e' 并执行 .
也删除
单词 'some more text'):
(some initial text)
(some more text)
当括号(或引号)位于不同行时,这种方式也适用。为了
例如,光标位于 {}
之间的某处,执行 di}
将改变
这个:
function( args ) {
body of function
}
对此:
function( args ) {
}
假设我有以下内容:
text function(contents) text
我希望它是
text function() text
将光标放在左括号之后,我认为下面的命令可以工作 df)
;然而,我最终得到的是以下内容
text function( text
所以我需要以某种方式指定我想要右括号之前的字符,但我不确定该怎么做。可能还有更好的方法来做到这一点。
解决此问题的最佳方法是什么?
你很接近!你需要 dt)
如 d
elete t
ill )
f
动作将光标放在 )
上(像 f
ind 一样记住它)
至于 'best' 的方法,至少有一种更通用的方法:如果
光标在 (
和 )
中间的某处(或其中之一),你
可以 di)
(或等同于 di(
)到 d
elete i
nside )
如果你da)
(或相当于da(
)到d
elete a
round )
,你会
删除中间的内容,包括括号。
di[
、di{
、di<
、di'
、di"
等也是如此。使用这些所谓的
与 d{motion}
方式相反,文本对象的优点是您可以
对其他 brackets/quotes 对重复编辑,而不需要光标
完全在同一个地方 - 它只需要在它们之上或之间。
在下文中,您可以将光标定位在例如'initial' 中的 'i'
第一行,执行 di)
删除单词 'some initial text',然后移动
将光标移至第二行 'more' 中的 'e' 并执行 .
也删除
单词 'some more text'):
(some initial text)
(some more text)
当括号(或引号)位于不同行时,这种方式也适用。为了
例如,光标位于 {}
之间的某处,执行 di}
将改变
这个:
function( args ) {
body of function
}
对此:
function( args ) {
}