如何在vim的插入模式下从当前光标位置删除到行尾?
我知道您可以在命令模式下使用D
执行此操作,并且我知道您可以使用ctrl-u从光标位置删除插入模式中的行的
答案 0 :(得分:7)
如果您处于插入模式并且想要执行单个普通模式命令,则可以按:
CTRL + O
执行普通模式命令后,您将返回插入模式。所以,你可以这样使用 D :
CTRL + O d
答案 1 :(得分:0)
在VIM中没有内置的方法,但您可以像在Emacs中一样使用此地图在VIM中使用Ctrl + k:
inoremap <C-k> <Del>
但是,如果您想要使用VIM的内置有向图功能来编写特殊字符,则应使用不同的键绑定,例如。
答案 2 :(得分:0)
没有内置的等价物(据我所知)。
如果您想要将其映射到更容易记住的内容,您可能希望创建一个insert-mode mapping,这将允许您use the normal-mode D命令删除光标下的字符,直到行尾:
:inoremap <Leader>k <C-O>D
假设<Leader>
是默认的\
,您可以在插入模式下键入 \ k 来调用映射。
插入模式映射并非没有缺点,正如Kent在评论中指出但确实有其用途。
答案 3 :(得分:0)
如果您还希望将<C-k>
绑定到命令行模式下的杀死行,则可以使用getcmdline()
和getcmdpos()
函数:
cnoremap <C-k> <C-\>e(" ".getcmdline())[:getcmdpos()-1][1:]<CR>