Выберите конкретный результат из предложений завершения

Допустим, у меня есть 3 файла в определенном каталоге: abc.txt, aww.txt, ant.txt

Если я сделаю: cat a (и нажмите вкладку, чтобы увидеть опции) терминал отобразит 3 имени файла: abc.txt, aww.txt, ant.txt

Есть ли способ выбрать n-ый результат, а не набирать его, указав номер индекса в результатах, отображаемых терминалом?

что-то вроде: cat a2 получить второй файл (aww.txt)?

1 ответ

Предполагая, что вы используете Bash, либо добавьте следующее к вашему ~/.bashrc:

bind '"\e[6~": menu-complete'
bind '"\e[5~": menu-complete-backward'

Или измените настройки по умолчанию для всех программ, которые используют библиотеку завершения readline, а не только bash, создайте файл ~/.inputrc содержащий:

$include /etc/inputrc
"\e[6~": menu-complete
"\e[5~": menu-complete-backward

Теперь, когда вы открываете новый терминал, вы можете нажать:

  • Нажмите как обычно, чтобы увидеть доступные дополнения.
  • Нажмите Dn, чтобы выбрать первое завершение или перейти к следующему.
  • Pg Up, чтобы выбрать последнее завершение или перейти к предыдущему.
  • Alt+ n Pg Dn, чтобы выбрать n-е завершение или продвинуться вперед на n завершений.

Поэтому для вашего примера наберите Pg Dn,Pg Dn или Alt+2Pg Dn, чтобы получить второй файл. aww.txt,

Другие вопросы по тегам