在 Vim 中删除到命令行末尾

Big*_*uge 3 vim keyboard-shortcuts vimrc

我喜欢在插入和命令行模式下使用 shell 样式的快捷方式,例如 CTRL-K 来删除到行尾。此映射在插入模式下工作:

inoremap <C-K> <C-O>D
Run Code Online (Sandbox Code Playgroud)

但我无法找出命令行模式的等效项。有任何想法吗?

我正在使用 Vrapper 以防万一。

Ing*_*kat 5

替代方法

:help command-line-window是 Vim 鲜为人知的功能之一。<C-f>当您已经在命令行上时,或者从正常模式下,您可以默认输入它q:。与任何其他 Vim 缓冲区一样,您可以使用 Vim 命令编辑当前或先前的命令行,然后按<Enter>执行并关闭它。在其中,您可以D像其他地方一样使用。

映射

如果您希望直接在命令行本身中使用该功能,您可以定义这个简单的映射:

cnoremap <C-k> <C-\>e(strpart(getcmdline(), 0, getcmdpos() - 1))<CR>
Run Code Online (Sandbox Code Playgroud)

请注意,您建议的左侧会破坏有用的二合字母条目。

插入

我的CmdlineSpecialEdits 插件(以及其他许多插件)有一个CTRL-G D映射,可以删除光标位置和行尾之间的所有字符。