我非常喜欢这个魔法,.inputrc
它允许我使用向上箭头键快速自动完成命令。
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward
然而,很多时候,我必须在 vanilla linux 上使用 ssh,这时我必须使用CTRL+ R。这样一来,我通常会变得非常没有效率,因为我不知道如何使用这个命令。
.inputrc
是时候质疑我的工作流程了。使用原生的 bash 历史反向搜索能比我的魔法更有效率吗?
具体用例
我想回想一下python
我写的最后一行。我的解决方案是pyt
+ ↑+Enter
使用反向 i 搜索,如果我执行CTRL+ R, pyt
。我通常会得到包含 的任何命令pyt
,而不是以 开头的最后一个命令python
。
更烦人的是,我通常会在已经输入完时才意识到应该使用历史记录pyth
。如果我按CTRL+,R我会得到:
(reverse-i-search)`': pyth
这非常令人困惑,因为如果我输入,o
我会突然得到一个很久以前输入的 WTF 命令,其中仅包含一个o
。
我完全确定我没有正确使用反向搜索。我遗漏了什么?
答案1
您是否使用额外的CTRL
+R
按键来超越第一个匹配?
在上面的例子中,当您命中后,您可以通过按下额外的+键pyth
继续匹配。CTRL
R
这就是你要找的东西吗?
更新:根据要求,在下面添加了示例。
例如:我想匹配这两个类似命令中较旧的一个。
$ python -m this
# ... snip...
$ python -c "import this"
# ... snip...
现在当你:
CTRL
+R
- 开始输入
pyt
此时,您已匹配了两个命令中的后者。但不是您想要的那个(在本例中)。
- 点击
CTRL
+R
再一次
此时您将匹配您想要的命令。