删除行中的特定字符

use*_*197 2 vi vim

我想用 Vim 删除特定的字符,例如:

for a, b in enumerate(def}):
Run Code Online (Sandbox Code Playgroud)

如果光标在开头,我想知道是否可以在{不移动到该位置的情况下删除错字。我已经尝试过f, t,|键,但是作为动作键,他们最终删除了整行。

是否有一个“pointwise-like”键移动可以删除那个特定的字符?还是根本不值得?

D. *_*ble 5

最简单的版本是移动光标然后删除(因为它是单个字符):

f}x
Run Code Online (Sandbox Code Playgroud)

这不同于df}——第一个读取 « find a } 然后删除它 »,而第二个读取 « 删除从我当前位置到你找到 } 的位置的所有内容,包含 » ( --' ttil- 将是唯一的)。

事实证明,x是 的同义词dl,它是«删除一个向右移动一个字符所覆盖的字符»。(是的,我知道,hjkl。相信我,如果你考虑它会更直观。)

如果你想回到行的开头,你可以0在那之后点击,或者可能``

在这么简单的错字中,你也可以这样做

:substitute/}/
Run Code Online (Sandbox Code Playgroud)

或者:s/}/简而言之,但这是很多打字。

总的来说,没有理由不移动光标。