Итак, я заинтересован в привязке клавиши со стрелкой вверх для перехода к следующей команде уникальный в истории, а не к предыдущей?
Например: Я учусь в колледже, кодирую на 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 поддерживает создание функций для группировки команд и повторного использования кода.
Там действительно нет эффективного способа сделать то, что вы просите. Вам нужно будет запустить какой-то сервис в фоновом режиме, который постоянно сканирует историю, чтобы знать, сколько предыдущих команд нужно пропустить, что, вероятно, будет очень медленным. Я полагаю, что наиболее эффективным решением будет избавиться от повторяющихся команд в вашем ~/.bash_history
.
Вы можете добавить это в свой ~/.bash_profile
, чтобы автоматически удалять повторяющиеся команды:
# clean up history:
export HISTCONTROL=erasedups:ignoreboth
теперь вам нужно всего лишь дважды нажать ↑, чтобы перейти к последней уникальной команде.