在提示符下清除当前行的按键

wim*_*wim 1 keyboard-shortcuts bash vim

如何清除当前行?我正在使用 bash。

我不喜欢ctrl+c因为它会在屏幕上留下废话。

如果光标位于行尾,我可以使用ctrl+u并且它完全符合我的要求。但是如果光标位于中线,我需要使用像ctrl+ ectrl+ u(或ctrl+ actrl+ k)这样的序列来获得所需的行为。

无论光标位于行中的哪个位置,是否有一个按键都可以执行?

我也想知道这在 vim 中是否可行(0D与一个按键的行为相同)

mpy*_*mpy 5

bash 中,您可以将kill-whole-line命令绑定到例如CTRL-K

bind '"\C-k": kill-whole-line'
Run Code Online (Sandbox Code Playgroud)

这正是您想要的(来自man bash):

kill-whole-line 杀死当前行上的所有字符,无论点在哪里。

~/.bashrc如果您希望这种行为持续存在,请将其放在您的身上。

如果你想重新绑定,CTRL-U你必须在你的~/.inputrc

set bind-tty-special-chars off
Run Code Online (Sandbox Code Playgroud)

看到这个错误报告


vim 中,您可以为0D.

map <C-k> 0D
imap <C-k> <ESC>0Di
Run Code Online (Sandbox Code Playgroud)

您可以在命令模式 ( :) 中测试它或将其放入您的~/.vimrc~/.vim/vimrc使其永久化。根据你的需要选择一个合理的快捷方式,我CTRL+K以前和 bash 例子是一致的。该imap行用于插入模式,因此您甚至不必进入命令模式来终止当前行,即这可以节省另外两次按键操作。(我不是vim破解,所以可能有更好的方法来实现这一点,但它似乎工作......)