在 VIM 中,如何在命令模式下删除到行尾:?

Pat*_*パトシ 4 bash vim vi

在 VIM 中,我有以下的领导快捷方式:

:!git commit % -m 'updated '; git push;                                                                                                                                                                   
Run Code Online (Sandbox Code Playgroud)

一旦我执行了这个领导者快捷方式,我的光标就会在更新后落在角色上。现在的问题是:

如何使用快捷键删除到该行的末尾?在 bash 中,它将是“CTRL-k”,但这在这里不起作用。我只想删除“更新”一词后的所有内容。

在此处输入图片说明

Cho*_*ong 6

没有默认的快捷方式映射来执行您的要求。可以通过 找到命令模式编辑的完整文档:help cmdline-editing。欢迎您浏览它以找到对您有用的任何内容。但我不认为你要求的功能在其中。

我猜默认的命令行编辑方式不需要这样的操作。通常我们通过<Ctrl-W>不移动光标来删除光标前的单词。但是,当然,如果您有自己的编辑方式,您可以随时根据自己的喜好调整 vim 的行为。

您可以通过映射<C-K>到定义为适合您所需行为的函数来获得所需的快捷方式。这里我写一个例子。您只需将以下代码粘贴到您的~/.vimrc. 重新获取文件。您可以按照自己的方式使用捷径。

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

如果您有兴趣,这会调用默认的命令模式快捷方式 ( <C-\>e) 来评估 {expr} 并用结果替换整个命令行。strpart()是 vim 给出的字符串截断函数。

在您<C-k>击键时,vim 将从命令模式中提取内容作为字符串。并且只将字符串开头的内容放回光标位置前一个位置。其余内容将被截断并因此被删除。


jhe*_*ran 5

在键入:进入命令模式后,或在插入命令后,键入CTRL+ f。您的命令历史记录将显示在新的“命令行窗口”中。一旦到达那里,您就可以D从要开始删除的位置开始使用。然后只需键入\xe2\x86\xa9即可执行命令。

\n

  • 并使用“q:”直接启动命令行窗口。 (3认同)