【问题标题】:Vim - delete line in insert modeVim - 在插入模式下删除行
【发布时间】:2018-06-17 23:10:16
【问题描述】:

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

因为目前我必须按<ESC>dd 才能做到这一点,并且我想要一种更快的方法来在插入模式下删除一行

【问题讨论】:

  • 确定查找如何映射关键命令
  • 没有键映射我不能做到吗?
  • 处于插入模式?如果有,我不知道.. 对不起

标签: vim vi


【解决方案1】:

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

也就是说,我不会经常使用它。插入模式用于插入;对于所有其他编辑,最好退出插入模式并改用普通模式dd。大多数高级用户快速进入和退出各种模式;这就是他们的目的。不要在插入模式下停留太久。我什至会在超过几秒钟的“思考停顿”后退出它。

【讨论】:

  • 绝对同意 Ingo 的观点。如果<ESC>dd 太不方便你可以看看:vim.wikia.com/wiki/Avoid_the_escape_key。与其他编辑器相比,<ESC>dd 对我来说似乎相当快。
  • 这很好用——我假设<C-U> 实际上是Ctrl+U(当然取决于你的映射)这也是给读者的说明
  • 谢谢!是的,这是Ctrl+U;我使用与 Vim 映射 (:help key-notation) 中相同的符号。
  • 我倾向于使用 , 它们是命令行命令而不是 Vim 命令(在我看来),因为我可以在 Vim 之外的 CLI 中使用它们。但是,您失去了 Vim 的强大功能,因为您无法像在编辑模式下那样粘贴刚刚删除的内容。我只在我不打算使用要删除的文本时使用它们
【解决方案2】:

在插入模式下使用Ctrl+O可以运行一个普通模式命令,这样你就可以在不离开插入模式的情况下删除当前行,用Ctrl kbd>+Odd.

http://vimdoc.sourceforge.net/htmldoc/insert.html#i_CTRL-O

【讨论】:

  • 我更喜欢这个,因为它仍然让我处于插入模式
  • 很好的答案,我也更喜欢这个。
  • 哇,在使用 Vim 近 20 年后,你今天教会了我一些东西。 :h i_CTRL-O 包含在 Special special keys 部分中。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    您也可以使用_ 跳转到第一个非空白字符,然后使用C 删除到行尾并开始插入。

    您不会在开始时处于插入模式,但在运行 C 之后会处于插入模式。您还可以为自己节省一个esc 击键,并且不必担心映射。使用_ 还可以更轻松地保留格式。

    【讨论】:

      【解决方案5】:

      我建议创建一个插入映射

      inoremap <Leader>k <C-o>dd
      

      记住在大多数情况下映射到“,”。欲了解更多信息,请输入::h mapleader

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-03
        • 2017-03-14
        • 2014-07-28
        • 1970-01-01
        • 2015-04-30
        • 2023-03-03
        • 2018-12-30
        • 1970-01-01
        相关资源
        最近更新 更多