通过运行解释器槽,rlwrap
我可以通过按向上和向下箭头键来访问命令历史记录。但是,我希望能够像在 Bash 中那样搜索命令历史记录(使用 Ctrl-r)。有没有替代品rlwrap
具有此功能?顺便说一句,我用的是rlwrap
0.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-readline
thenrlwrap
将保持“透明”,即它只会将所有按键传递给 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
。)