如何更改bash历史logging完成以完成已经在线的内容?

几个月前,我发现了一个命令,使得我的bash历史logging能够在按下向上箭头时自动完成线上已有的内容:

$ vim fi 

 $ vim file.py 

我想在新电脑上设置它,因为它保存了大量的历史logging,节省了大量的时间。 问题是,我不能为了我的生活记住它提到的地方,通过阅读无尽的bash参考和教程不幸也没有帮助。

有人知道命令吗?

可能是类似的东西

 #〜/ .inputrc
 “\ e [A”:历史search后退
 “\ e [B”:history-search-forward

或者等同地,

 #〜/ .bashrc
如果[[$  -  == * i *]]
然后
    绑定'“\ e [A”:历史search后退'
     bind'“\ e [B”:history-search-forward'
科幻

(if语句检查交互模式)

通常,Up和Down分别绑定到Readline函数previous-historynext-history 。 我宁愿将PgUp / PgDn绑定到这些函数,而不是取代Up / Down的正常操作。

 #〜/ .inputrc
 “\ e [5〜”:历史search后退
 “\ e [6〜”:历史search前进

修改~/.inputrc ,重新启动你的shell或者使用Ctrl + XCtrl + R来告诉它重新读取~/.inputrc


顺便说一句,如果你正在寻找相关的文件:

Bash使用GNU Readline Library作为shell提示符和历史logging。

使用以下内容更新.inputrc:

 "\C-[OA": history-search-backward "\C-[[A": history-search-backward "\C-[OB": history-search-forward "\C-[[B": history-search-forward 

用ohmyzsh,在你的.zshrc中使用这个:

 bindkey '^[OA' history-search-backward bindkey '^[OB' history-search-forward 

要重新加载, source ~/.zshrc或重新启动terminal。

来源: https : //superuser.com/a/418299/71680

如果set enable-keypad on在你的~/.inputrc就像某些用户可能~/.inputrc st( 简陋的简单terminal )那样,注意箭头键在键盘模式下。 Ubuntu提供了这个有用的/usr/share/doc/bash/inputrc.arrows

 # This file controls the behaviour of line input editing for # programs that use the Gnu Readline library. # # Arrow keys in keypad mode # "\C-[OD" backward-char "\C-[OC" forward-char "\C-[OA" previous-history "\C-[OB" next-history # # Arrow keys in ANSI mode # "\C-[[D" backward-char "\C-[[C" forward-char "\C-[[A" previous-history "\C-[[B" next-history # # Arrow keys in 8 bit keypad mode # "\CM-OD" backward-char "\CM-OC" forward-char "\CM-OA" previous-history "\CM-OB" next-history # # Arrow keys in 8 bit ANSI mode # "\CM-[D" backward-char "\CM-[C" forward-char "\CM-[A" previous-history "\CM-[B" next-history 

所以我不确定你是否需要所有的东西,但是在~/.inputrc可能没有什么不好的地方:

 # Arrow keys in keypad mode "\C-[OA": history-search-backward "\C-[OB": history-search-forward "\C-[OC": forward-char "\C-[OD": backward-char # Arrow keys in ANSI mode "\C-[[A": history-search-backward "\C-[[B": history-search-forward "\C-[[C": forward-char "\C-[[D": backward-char 

这也是在同一个主题: 我的光标键不工作 ,也是这个xterm:特殊键

您可能需要启用bash完成。

检查

  • /etc/profile
  • /etc/bash.bashrc
  • ~/.bashrc

看看上面的文件是否源于/etc/bash_completion 。 即

 。 在/ etc / bash_completion

如果/etc/bash___completion不是来自上述任何文件,则需要将其添加到其中一个文件中。

如果你想让你的机器上的所有bash用户有bash完成, /etc/bash_completion/etc/bash.bashrc/etc/bash_completion

如果只是你想要bash完成的话, /etc/bash_completion从你的~/.bashrc /etc/bash_completion