vi删除“直到下一个X字符”的快捷方式


193

我了解vi具有快捷键,可以删除带有各种选项的字符,单词和行。

但是,我找不到这个:

  • 从光标删除到下一个指定字符

例如,我可能会键入以du"期望编辑器“删除,直到"找到下一个字符”

我知道最近的是d9w哪里9的话要删除的号码。

有人知道这是否可能吗?


如果您对Vi和Vim感兴趣,那么他们现在拥有自己的SE网站:Vi和Vim
甜点

Answers:


302

使用dtc,其中c是任何字符,例如对于您来说,您想要dt"

这将删除最多但包括c的内容

如果你有:

delete until exclamation point!

光标在第一个空格处,然后键入dt!,您将得到:

delete!

dfc

这将删除至包括c

使用df!在同上面的例子会给你:

delete

几乎任何“运动”,可用于dcy和类似指令。


7
大概助记符是“耕种”吗?好答案。
考虑过2015年

15
您还可以使用移动命令的大写字母删除字符的先前实例。也许对逗号更有用- dT,dF,
joelostblom 2015年

3
这不适用于多行。
0xcaff 2015年

3
可以在一系列生产线上完成吗?

2
为了在行的范围内执行类似的操作,可以执行常规搜索(如zpletan的答案):d/word搜索多达word。后面必须按Enter键(以关闭搜索)。
Eric O Lebigot

59
  • 最多删除字符“ X”的类型 dtX

  • 通过字符“ X”向前删除 dfX

  • 要向后删除字符“ X”,请键入 dTX

  • 要通过字符“ X”向后删除,请输入 dFX


30

输入dt#(不是:command,像G一样使用它)

将从光标中删除,直到但不包括#。您可以将任何字符替换为#。


2
这是正确的答案!df#也会删除#。
2014年

一直在寻找,这真棒
Nadeem Khedr 2015年


6

w移至下一个单词。l移至以下字符。

因此,d9l将删除接下来的9个字符。


2
关闭,l是Vim的向右箭头键,因此您实际上是在向右删除。相反,d9h将删除9个字符。
沃尔夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.