如何从搜索恢复到原始命令

Zac*_*sch 6 bash keyboard-shortcuts command-history

按照此处的说明,我通过 .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
Run Code Online (Sandbox Code Playgroud)

这很棒,但如果我找不到我要找的命令,我希望向下箭头返回到我的原始文本。

例如,假设我有三个以前的命令:

  • ls -l
  • ls -al

现在,我键入ls的目的是将其自动完成为ls -a.

我点击了向上箭头,它(使用我当前的实现)将我的文本自动补全到ls -al. 我再次点击向上箭头,这会将我的文本自动补全到ls -l. 在这一点上,我决定我不会找到我正在寻找的命令。如果我按下向下箭头,文本将变为ls -al,但再次按下向下箭头不会改变任何内容。我想ls在到达历史记录中的最新命令后按向下箭头返回到我的原始文本(在本例中)。

如果有人能帮助我或为我指明正确的方向,我将不胜感激。

谢谢!

Pet*_*r.O 4

Ctrl+K将删除从光标到行尾的文本。所以如果您没有移动光标,Ctrl+K将为您提供(即有效恢复)原始文本