按照说明进行操作这里,我通过 .bash_profile 进行了编辑,以启用向上和向下箭头来根据之前的命令自动完成我在 shell 中键入的内容。
我添加到我的 .bash_profile 中:
# bind history search to up and down arrows
if [[ $- == *i* ]]
then
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
fi
这很棒,但如果找不到我要查找的命令,我希望向下箭头返回到原始文本。
例如,假设我之前有三个命令:
ls -l
ls -al
现在,我打字的ls
目的是将其自动补全为ls -a
.
我点击向上箭头,它(使用我当前的实现)将我的文本自动完成为ls -al
.我再次点击向上箭头,这会将我的文本自动补全为ls -l
.此时,我决定找不到我正在寻找的命令。如果我按向下箭头,文本将更改为ls -al
,但是再次按向下箭头不会改变任何内容。ls
在到达历史记录中的最新命令后,我想按向下箭头返回到原始文本(在本例中)。
如果有人能帮助我或为我指出正确的方向,我将非常感激。
谢谢!
答案1
Ctrl+K
将删除从光标到行尾的文本。所以如果您没有移动光标,Ctrl+K
将为您提供(即有效恢复)原始文本