Для некоторых проектов я часто набираю пару команд, например:
cd an/extremely/long/path/in/which/I/have/some/kinda/project
и
./runmyproject --with some --command line --options set
Видя, что я довольно ленив, я стараюсь не вводить эти команды снова и снова. Поэтому я, конечно, могу много раз использовать клавишу up, чтобы найти эти команды, но часто у меня так много команд между ними, что поиск занимает даже больше времени, чем просто ввод.
Теперь мне интересно, есть ли какая-нибудь утилита, которая может предложить полную команду, которую я часто использую, когда я еще не набрал ее все. Так что я могу, например, набрать «cd an /», и он уже предлагает остальную часть пути, потому что я так часто использовал его в прошлом месяце.
Я нашел что-то под названием Bash Smart Complete. Но это немного «глупо» в том смысле, что в нем не рассматриваются команды, которые я использовал раньше. Я также нашел этот ТАК ответ , который предлагает поместить в файл команды, которые я часто использую. Это, однако, недостаточно отзывчиво, потому что мне нужно будет создавать новый файл для него каждый раз, когда я запускаю новые проекты или изменяю папки или аргументы программы.
Кто-нибудь знает какую-либо другую утилиту или другой способ добиться этого? Или кто-нибудь знает, как я могу изменить Bash Smart Complete, чтобы он мог просматривать команды, которые я использовал, скажем, в прошлом месяце, и завершать команду, которая подходит и использовалась чаще всего в прошлом месяце?
[РЕДАКТИРОВАТЬ] Ниже приведены некоторые действительно хорошие ответы. Я еще не пометил их как определенный ответ. Не потому, что мне не нравятся ответы, а потому, что ни один из них не является абсолютным победителем. Я думаю, что Finalterm - отличный проект. К сожалению, это все еще довольно грубо по краям. Например; он еще не поддерживает копирование-вставку. Я бы следил за этим проектом, потому что, когда он станет зрелым, я думаю, что он будет отличным терминальным приложением. Что касается других ответов; они либо предложили создать псевдоним, а это не то, что я хочу сделать, потому что это создает дополнительную работу вместо того, чтобы убирать работу, или использовать Ctrl + R, что замечательно (я не знал об этом!). Несколько человек предложили использовать Ctrl + R, поэтому я не могу выделить один ответ над другим.
Так что сейчас я определенно использую Ctrl + R, и в будущем я мог бы использовать Finalterm.
Спасибо за отличные ответы, ребята!
zsh
. Он предлагает все, что вы просите, и многое другое. Переход от bash к zsh