如何更改bash历史记录完成以完成已有的内容?
我发现了一个命令几个月前,使我的bash历史自动完成上按向上箭头时什么是已经上线:如何更改bash历史记录完成以完成已有的内容?
$ vim fi
按↑
$ vim file.py
我我想在我的新电脑上设置它,因为它在保存大量历史记录时节省了大量时间。问题是,我不能为了我的生活记住它被提及的地方,并且通过阅读无尽的bash参考资料和教程不幸也没有帮助。
有人知道命令吗?
大概就像
# ~/.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-history
和分别为。我宁愿将PgUp/PgDn绑定到这些函数,而不是取代Up/Down的正常操作。
# ~/.inputrc "\e[5~": history-search-backward "\e[6~": history-search-forward
修改~/.inputrc
,重新启动您的外壳或使用按Ctrl +X,按Ctrl +[R告诉它之后重新读取~/.inputrc
。
顺便说一句,如果你正在寻找相关文件:
Bash使用The GNU Readline Library的shell提示符和历史。
您可能需要启用bash完成。
检查
/etc/profile
/etc/bash.bashrc
~/.bashrc
,看是否有上述文件的源/etc/bash_completion
的。即
. /etc/bash_completion
如果/etc/bash___completion
没有被任何你需要将它添加到其中的一个上述文件的来源。
如果您希望机器上的所有bash用户都有bash完成,请从/etc/bash.bashrc
获取源/etc/bash_completion
。
如果只是你想要bash完成,请从你的~/.bashrc
来源/etc/bash_completion
。
随着ohmyzsh,在你的.zshrc使用:
bindkey '^[OA' history-search-backward
bindkey '^[OB' history-search-forward
重装,source ~/.zshrc
或重新启动终端。
更新.inputrc文件有以下几点:
"\C-[OA": history-search-backward
"\C-[[A": history-search-backward
"\C-[OB": history-search-forward
"\C-[[B": history-search-forward
如果set enable-keypad on
在你~/.inputrc
一些ST(suckless simple 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
#
"\C-M-OD" backward-char
"\C-M-OC" forward-char
"\C-M-OA" previous-history
"\C-M-OB" next-history
#
# Arrow keys in 8 bit ANSI mode
#
"\C-M-[D" backward-char
"\C-M-[C" forward-char
"\C-M-[A" previous-history
"\C-M-[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
这也是对同一主题:My cursor keys do not work也是这样的xterm: special keys
感谢您的回答。这听起来很熟悉,但不幸的是不适合我。将它放入.inputrc中并不会改变任何内容,并将其放入.bashrc中,以阻止箭头执行任何操作。有任何想法吗? – blokkie 2009-06-23 01:31:12
没关系。 history-complete- *不存在;只有历史搜索功能存在。谢谢! – blokkie 2009-06-23 01:32:59
啊,我明显错误地列出了前两个例子......但最后一个是正确的。我会解决这个问题。 – ephemient 2009-06-23 01:34:18