Vim - 在插入模式下删除一行

20

我能在插入模式下删除一行吗?

因为目前我必须按<ESC>dd才能实现,我想要更快速的方式在插入模式下删除一行。


确保查找如何映射键命令。 - mad.meesh
我能否不使用按键映射来完成它? - AK_
在插入模式下?如果有的话,我不知道...抱歉。 - mad.meesh
5个回答

32

如果光标在行尾,您可以按两次<C-U>。第一次将清除光标前的文本,第二次将删除现在的空行(并将光标放在上一行的末尾)。

话虽如此,我不经常使用这个功能。插入模式用于插入;对于所有其他编辑操作,最好退出插入模式并使用普通模式的dd。大多数高级用户可以快速进入和退出各种模式;这就是它们的用途。不要太长时间停留在插入模式中。我甚至会在思考暂停超过几秒钟时退出它。


完全同意Ingo的看法。如果<ESC>dd不太方便,您可以看一下:http://vim.wikia.com/wiki/Avoid_the_escape_key。与其他编辑器相比,对我来说`<ESC>dd`似乎相当快。 - Doktor OSwaldo
3
这个很好用 - 我假设<C-U>实际上是Ctrl+U(当然这取决于你的映射)同时,这也是读者的一条提示。 - AK_
2
谢谢!是的,这是 Ctrl+U;我使用与 Vim 的映射相同的符号表示法(:help key-notation)。 - Ingo Karkat
我倾向于使用<C-U>、<C-W>这些命令行命令,而不是Vim命令(在我看来),因为我可以在Vim之外的CLI中使用它们。然而,你失去了Vim的强大功能,因为你不能像在编辑模式下那样粘贴刚刚删除的内容。我只在不需要使用我正在删除的文本时才使用它们。 - charlchad

29

1
我更喜欢这种方式,因为它仍然让我保持插入模式。 - Fatima
1
很棒的答案,我也喜欢这个。 - ch0wner
哇,使用 Vim 已经将近 20 年了,今天你教会了我一些东西。 :h i_CTRL-O 包含在 特殊特殊键 部分中。 - Clint Pachl

9

按下 c + c(按两次c键)将删除当前行并进入插入模式。


“Esc c c”听起来是最接近请求的东西。 - George Shuklin

3
你也可以使用_跳转到第一个非空格字符,然后使用C删除到行末并开始插入。开始时你不会处于插入模式,但是运行C后就会进入插入模式。这样可以省去esc键的按键操作,而且不必担心映射问题。使用_还可以更轻松地保留格式。

1
我建议创建一个插入映射。
inoremap <Leader>k <C-o>dd

记住在大多数情况下被映射为“,”。有关更多信息,请键入::h mapleader


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接