如何更改bash历史记录完成以完成已在线上的操作?

blo*_*kie 129 linux bash shell bash-completion

几个月前我发现了一个命令,当按下向上箭头时,我的bash历史记录会自动完成已经在线上的命令:

$ vim fi
Run Code Online (Sandbox Code Playgroud)

$ vim file.py
Run Code Online (Sandbox Code Playgroud)

我想在我的新电脑上设置它,因为它可以节省大量的时间来保持一个伟大的历史.问题是,我不能为我的生活记住它被提到的地方,阅读无尽的bash参考和教程不幸也没有帮助.

有人知道命令吗?

eph*_*ent 219

可能是类似的东西

# ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward

或等效地,

# ~/.bashrc
if [[ $- == *i* ]]
then
    bind '"\e[A": history-search-backward'
    bind '"\e[B": history-search-forward'
fi

(if语句检查交互模式)

通常情况下,上下绑定到的ReadLine功能previous-historynext-history分别.我更喜欢将PgUp/PgDn绑定到这些函数,而不是取代Up/Down的正常操作.

# ~/.inputrc
"\e[5~": history-search-backward
"\e[6~": history-search-forward

修改后~/.inputrc,重新启动shell或使用Ctrl+ X,Ctrl+ R告诉它重新读取~/.inputrc.


顺便说一句,如果您正在寻找相关文档:

Bash使用GNU Readline Library作为shell提示符和历史记录.


nat*_*don 5

使用以下内容更新 .inputrc:

"\C-[OA": history-search-backward
"\C-[[A": history-search-backward

"\C-[OB": history-search-forward
"\C-[[B": history-search-forward
Run Code Online (Sandbox Code Playgroud)