在任何解释器中搜索命令历史记录

在任何解释器中搜索命令历史记录

通过运行解释器槽,rlwrap我可以通过按向上和向下箭头键来访问命令历史记录。但是,我希望能够像在 Bash 中那样搜索命令历史记录(使用 Ctrl-r)。有没有替代品rlwrap具有此功能?顺便说一句,我用的是rlwrap0.43版本。

编辑:这个问题似乎与 GNU APL 有关。对于其他命令行解释器,Ctrl-r 命令按预期工作。

答案1

rlwrap联机帮助页:

-a, --always-readline [password_prompt]
          Always  remain in "readline mode", regardless of command's
          terminal settings.  Use this option if you want to use 
          rlwrap with commands that already do some line editing.

如果您的解释器(或您想要的任何命令rlwrap)已经具有命令历史记录机制,那么它显然是这些命令之一。

rlwrap这种情况的使用方法是(以GNU APL解释器apl为例):

$ rlwrap --always-readline apl

但请注意,这将覆盖任何现有的(并且,对于apl,显然,非常特定于 APL历史和完成机制)。如何避免这种情况(剧透:你不能!)实际上是其中之一最常见的常见问题解答关于rlwrap

如果省略--always-readlinethenrlwrap将保持“透明”,即它只会将所有按键传递给 rlwrapped 命令,并且不执行任何操作。

答案2

在 Debian 上对我来说开箱即用Ctrl-R

$ rlwrap --version
rlwrap 0.42
$ rlwrap cat > /dev/null 
foo
bar
(reverse-i-search)`f': foo

/etc/inputrc并且~/.inputrc即使使用 也适用于 Readline rlwrap,因此它们可能会影响可用的绑定。 (但是你确实暗示它在 Bash 中有效,所以它可能与 无关inputrc。)

相关内容