bash - 如何绑定(bind)向上箭头键以转到下一个唯一命令(macOS 终端)?

标签 bash macos command-line terminal

所以我有兴趣绑定(bind)向上箭头键以转到历史记录中的下一个唯一命令,而不是紧接在前的命令?

例如: 我在上大学,用 java 编码,在调试时我需要在终端中多次编译和重新编译 java 文件,然后才能最终运行该文件,因此我的命令行历史记录可能看起来像这样。

1: javac Hello_World.java
2: java Hello_World
3: javac Hello_World.java
4: javac Hello_World.java
5: javac Hello_World.java
6: javac Hello_World.java

我目前需要多次按向上箭头键(在本例中为 4 次)才能返回到我刚刚运行的命令。

那么有什么方法可以返回到下一个独特的命令,这样我只需要按一次向上箭头就可以跳过重复的命令吗?

最佳答案

确实没有一种有效的方法来完成您的要求。您需要在后台运行某种类型的服务,不断扫描历史记录以了解要跳过多少先前的命令,这可能会非常缓慢。我认为最有效的解决方案是摆脱 ~/.bash_history 中的重复命令。

您可以将此添加到您的 ~/.bash_profile 中以自动删除重复命令:

# clean up history:
export HISTCONTROL=erasedups:ignoreboth

现在您只需要点击 两次即可转到您的最后一个独特命令。

关于bash - 如何绑定(bind)向上箭头键以转到下一个唯一命令(macOS 终端)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55565114/

相关文章:

bash - 在 shell 脚本中隐藏密码

java - 在 Java 中禁用 App Nap

ios - 如果我买不起Mac,如何开发iOS应用程序?

batch-file - 批量解析字符串输出

linux - 为什么使用-rf?

c - 结构和指针有问题(不兼容的指针类型)

json - 将 shell 变量传递给 JSON 请求以进行 curl ?

linux - 使用参数的 BASH shell 脚本

linux - 带有双星的 awk 语法错误 **

c - 如何在网络内核扩展中使用OpenSSL?