Vim:你能从另一条线上删除一个特定的行号吗?

Eth*_*han 34 vim

我在第93行并且意识到我想要删除第89行.我输入:d89希望第89行被删除.它没用.

有谁知道完成这种互动的好方法?我是一个舒服的Vim用户,但还没有(但)采取了飞跃来编写插件......

谢谢.

Lau*_*ves 61

冒号命令的地址(例如:行号)首先出现.

:89d
Run Code Online (Sandbox Code Playgroud)

请注意,这也会导致您导航到更改的位置.你可以``用来跳回来.

如果您希望将此命令作为单个命令,则可以定义自定义命令.例如:

command! -range -nargs=0 Delete <line1>,<line2>d|norm ``
Run Code Online (Sandbox Code Playgroud)

这定义了一个被调用的命令Delete,用于删除已寻址的范围(<line1>,<line2>d),然后导航回(norm ``).

你可以这样称呼它:

:89Delete
Run Code Online (Sandbox Code Playgroud)

您实际上可以使用任何唯一的前缀来调用它,因此您可以将其归结为:

:89D
Run Code Online (Sandbox Code Playgroud)


Zha*_*ang 9

:89d 将删除第89行.

:89,91d 将删除89号第90和第91行.

这些函数也适用于EclipseVrapper插件和Visual Studio Code的Vim扩展.