【问题标题】:in vim command line mode: how to kill the line from the current cursor position to the end在 vim 命令行模式下:如何杀死从当前光标位置到结尾的行
【发布时间】:2014-12-06 06:30:53
【问题描述】:

bash 的<c-k>: kill-line 特性,意思是杀死从当前光标位置到行尾的行。在vim命令行模式下编辑命令时如何做到这一点?

例如:
当在vim命令行模式中输入:echo 'hell|o world'这个命令并且光标在|位置时,如何杀死该行变成:echo 'hell

【问题讨论】:

    标签: bash vim


    【解决方案1】:

    我发现this key binding in Shougo's vimrc 设置了 Ctrl+k 删除直到行尾:

    " <C-k>, K: delete to end.
    cnoremap <C-k> <C-\>e getcmdpos() == 1 ?
          \ '' : getcmdline()[:getcmdpos()-2]<CR>
    

    请注意,这不会像 bash 或 Emacs 中的等效绑定那样将其余行保留在寄存器中。

    查看:h eval 以获取有关您可以在命令行上执行的操作的更多帮助。

    【讨论】:

      【解决方案2】:

      编辑命令行不应该发生在命令行本身,而是发生在编辑器中。

      这就是为什么在 bash 中有 &lt;C-x&gt;e 而在 Vim 中有 &lt;C-f&gt;

      【讨论】:

      • 了解这些绑定很有用;但是说你“不应该”以任何其他方式这样做是非常主观和基于意见的。
      猜你喜欢
      • 1970-01-01
      • 2017-02-15
      • 2016-06-22
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      • 2017-03-11
      相关资源
      最近更新 更多