在 Vim 中删除到命令行末尾

在 Vim 中删除到命令行末尾

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

inoremap <C-K> <C-O>D

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

我正在使用 Vrapper 以防万一。

答案1

替代方法

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

映射

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

cnoremap <C-k> <C-\>e(strpart(getcmdline(), 0, getcmdpos() - 1))<CR>

请注意,您建议的左侧破坏了有用的有向图入口。

插入

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

答案2

您可以使用

:,.d$

删除从光标处到文件末尾。

希望这有帮助!

相关内容