Answers:
大概像
#〜/ .inputrc “ \ e [A”:向后搜索历史 “ \ e [B”:历史搜索
或等效地,
#〜/ .bashrc 如果[[$-== * i *]] 然后 绑定'“ \ e [A”:history-search-backward' 绑定'“ \ e [B”:历史搜索-转发' 科幻
(if语句检查交互模式)
通常,向上和向下分别绑定到Readline函数previous-history
和next-history
。我更喜欢将PgUp / PgDn绑定到这些功能,而不是替换正常的Up / Down操作。
#〜/ .inputrc “ \ e [5〜”:向后搜索历史 “ \ e [6〜”:历史搜索
修改后~/.inputrc
,重新启动Shell或使用Ctrl+ X,Ctrl+ R使其重新读取~/.inputrc
。
顺便说一句,如果您正在寻找相关文档:
Bash使用GNU Readline库获取shell提示和历史记录。
使用以下命令更新.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
对del
关键工作正常(常见问题解答)。当键盘上的箭头键是"\C-[OA"
和"\C-[OB"
(和"\C-[OC"
和"\C-[OD"
)时。我在下面发布了一个答案以澄清这一点。
如果set enable-keypad on
您~/.inputrc
是某些st(无吮吸简单终端)用户所喜欢的用户,请注意箭头键处于键盘模式。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
随着ohmyzsh,在您使用本.zshrc:
bindkey '^[OA' history-search-backward
bindkey '^[OB' history-search-forward
重新加载source ~/.zshrc
或重新启动终端。
您可能需要启用bash完成。
检查一下
/etc/profile
/etc/bash.bashrc
~/.bashrc
查看以上任何文件源/etc/bash_completion
。即
。/ etc / bash_completion
如果/etc/bash___completion
不是上述任何文件的来源,则需要将其添加到其中一个文件中。
如果您希望计算机上的所有bash用户都完成bash操作,请/etc/bash_completion
从中获取源/etc/bash.bashrc
。
如果只是您想要bash补全,请/etc/bash_completion
从中获取~/.bashrc
。