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


4

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

:!git commit % -m 'updated '; git push;                                                                                                                                                                   

执行此领导者快捷方式后,我的光标在更新后登陆角色。现在的问题是:

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

enter image description here


仅供参考,“命令模式”与“正常模式”同义。你在说什么是“命令行模式”。看到 :help vim-modes
romainl

Answers:


5

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

我想编辑命令行的默认方式不需要这样的操作。通常我们删除光标前的单词 <Ctrl-W> 没有移动光标。但是,当然,如果你有自己的编辑方式,你总是可以将vim的行为对你有利。

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

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

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

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


4

输入后 : 要进入命令模式,或在插入命令后,键入 CTRL + F 。您的命令历史记录将显示在新的“命令行窗口”中。在那里,你可以使用 d 从您想要开始删除的点。然后输入 执行你的命令。


3
并使用 q: 直接启动命令行窗口。
romainl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.