Как привязать клавишу со стрелкой вверх для перехода к следующей уникальной команде (терминал macOS)?

Итак, я заинтересован в привязке клавиши со стрелкой вверх для перехода к следующей команде уникальный в истории, а не к предыдущей?

Например: Я учусь в колледже, кодирую на 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 поддерживает создание функций для группировки команд и повторного использования кода.


2
199
1

Ответ:

Решено

Там действительно нет эффективного способа сделать то, что вы просите. Вам нужно будет запустить какой-то сервис в фоновом режиме, который постоянно сканирует историю, чтобы знать, сколько предыдущих команд нужно пропустить, что, вероятно, будет очень медленным. Я полагаю, что наиболее эффективным решением будет избавиться от повторяющихся команд в вашем ~/.bash_history.

Вы можете добавить это в свой ~/.bash_profile, чтобы автоматически удалять повторяющиеся команды:

# clean up history:
export HISTCONTROL=erasedups:ignoreboth

теперь вам нужно всего лишь дважды нажать , чтобы перейти к последней уникальной команде.