考虑以下bash提示,其中^
表示提示位置:
$ git commit -am "[bug 123456] Do this and that with the bug"
^
假设我想使用不同的提交消息再次提交给同一错误。有没有办法从光标位置删除文本到行尾?
考虑以下bash提示,其中^
表示提示位置:
$ git commit -am "[bug 123456] Do this and that with the bug"
^
假设我想使用不同的提交消息再次提交给同一错误。有没有办法从光标位置删除文本到行尾?
Answers:
使用Ctrl+ K从光标删除到行尾。
使用Ctrl+ U从光标删除到行的开头。
Brexit - the UK leaves Europe
-U删除至开头,K删除至结尾。
这取决于您在shell 中使用vi(set -o vi
)还是emacs(set -o emacs
)编辑模式。
默认情况下,您的Shell通常默认为emacs编辑模式。
在emacs模式下,可以使用命令ctrl- 删除到行尾k。
但是,如果您恰好在命令外壳程序中使用vi编辑模式,则可以通过键入Esc(这将使您进入命令模式)后接d- $(如果要删除整行,请输入dd)来实现相同的结果。
如果不确定外壳程序当前正在使用哪种编辑模式,请从命令行输入set -o
命令,您将能够确定当前使用的编辑模式:
set -o
...snip...
emacs on
...snip...
vi off
要切换命令行编辑模式,只需键入:
set -o vi
要么
set -o emacs
K
表示kill(从光标位置开始的行)。
D
工作原理与d$
如果您只熟悉Zsh和Bash之一,则这里是您(可能)需要的等效键绑定:
bind '"\C-k"':kill-line
bindkey "\C-k" vi-kill-eol
其他相关资料
要获取按键绑定列表:
# bash
bind -p
# zsh
bindkey
"^k"
Control + K吗?
"\C-k"