在vim命令行模式下:如何从当前光标位置删除到行尾

6
在bash中,<c-k>: kill-line的功能是删除当前光标位置到行尾的所有内容。在vim命令行模式下编辑命令时,如何执行此操作?
例如:当在vim 命令行模式下输入:echo 'hell|o world'命令并且光标位于|位置时,如何删除该行内容以便得到:echo 'hell命令?
2个回答

3

我发现Shougo的vimrc中有这个按键绑定,它设置了Ctrl+k来删除到行尾:

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

请注意,这不会像bash或Emacs中的等效绑定那样在寄存器中保留行的其余部分。
有关命令行上可以执行的更多操作,请查看:h eval。

-1

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

这就是为什么在bash中有<C-x>e,在Vim中有<C-f>


3
了解这些绑定的信息很有用,但说你“不应该”用其他方式做则相当主观和基于个人意见。 - echristopherson

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