Эквивалент Bash ESC-p Tcsh для перехода для управления запуском с того, что Вы ввели до сих пор

Я недавно сделал безумно запоздалый переключатель из tcsh для избиения. Единственной вещью, которую я пропускаю, является функция ESC+p tcsh: Начните вводить команду и затем поразите ESC+p (я на самом деле нашел эквивалентный ctrl-[p легче ввести), и это переходит к новой команде в Вашей истории, которая запускается с того, что Вы ввели до сих пор.

Возможно, лучший ответ должен просто привыкнуть к Ctrl+r удара, но до сих пор мне не нравится он так же. Я часто начинаю вводить команду, и затем мне приходит в голову, что я выпустил его прежде. С функцией tcsh я мог затем сделать ESC+p+Enter для переиздавания его. Это столь быстро, что я обычно никогда не использовал бы стрелку вниз ни для чего больше чем 2 команды назад.

Пример того, где я нашел это особенно хорошим: Долгие команды часто запускаются с точки, потому что они имеют форму

./myprogram.pl -lots -of -args -and -switches

В tcsh я дал бы команду как этот, затем возможно, ls, меньше, хвост, безотносительно, и затем переиздать долгую команду, 4 ключа: точка, Escape, p, входит.

Как я могу сделать это в Bash? Или, для создания этого конкретным, что такое наименьшее количество количества нажатий клавиш в ударе для высказывания "повторения последняя команда, которая запустилась с точки"? Это может соответствовать или разбить 4 tcsh?

12
задан Vadim Kotov 11 August 2017 в 09:20
поделиться

4 ответа

Добавьте это в свой ~ / .inputrc файл:

"\e[5~": history-search-backward
"\e[6~": history-search-forward

Это заставит PageUp действовать как tcsh Esc + p и PageDown будет перемещаться вперед по списку.

Вместо этого вы можете привязать \ ep . Если вы используете PageUp / PageDown , вам может потребоваться увидеть, какую последовательность символов выдает ваша клавиатура / терминал. Просто нажмите Ctrl + V , затем PageUp , и вы увидите ^ [[5 ~ , если он такой же, как \ е [5 ~ .

9
ответ дан 2 December 2019 в 06:44
поделиться

Ну, вы можете сделать

!.

, который состоит из трех символов (включая Enter). Конечно, в общем случае вы можете заменить точку на уникальный идентифицирующий префикс по вашему выбору.

2
ответ дан 2 December 2019 в 06:44
поделиться

Я был в одной лодке с вами, и мне нужно было переключиться на bash с tcsh.

Я только что создал новый файл ~ / .inputrc, как показано ниже, и все отлично работает!

$ cat ~/.inputrc
"\ep": history-search-backward
"\en": history-search-forward
10
ответ дан 2 December 2019 в 06:44
поделиться

Лично я предпочитаю ctrl-r - это интерактивный поиск по истории - проверьте, возможно, вам понравится. Последующие нажатия ctrl-r переходят к следующему совпадению.

2
ответ дан 2 December 2019 в 06:44
поделиться