如何更改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-history
和next-history
。 我宁愿将PgUp / PgDn绑定到这些函数,而不是取代Up / Down的正常操作。
#〜/ .inputrc “\ e [5〜”:历史search后退 “\ e [6〜”:历史search前进
修改~/.inputrc
,重新启动你的shell或者使用Ctrl + X , Ctrl + 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
。