Как сделать автозаполнение терминала при наличии нескольких файлов / директорий?

Если у меня есть несколько каталогов, например:

afoo abar

, иногда мой терминал будет отказываться от автозаполнения, когда я нажимаю tab (например, «cd a», затем tab), и вместо этого печатает список каталогов. Иногда он даже издает шумный, раздражающий звук. Есть идеи, как сделать автозаполнение в подобных случаях? Например, он может показывать сначала abar, а затем afoo, если я снова нажму tab. Я видел это в Windows или в Ubuntu

32
задан 11 April 2015 в 10:46

2 ответа

После 1-й вкладки вам нужно вставить больше букв. Поэтому, если вы наберете

cd a

и нажмете tab , вы ничего не получите, и после второй tab (сразу после) вы получите список имен, начинающихся с с a, а затем нужно вставить f, чтобы он автоматически завершил остаток, поэтому

cd a tab tab f < kbd> tab tab

приведет к

cd afoo
0
ответ дан 11 April 2015 в 10:46

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

Поскольку удар использует readline для его автозавершения добавьте следующие строки к ~/.inputrc

После того как Вы удовлетворены и полностью протестировали ниже решения в течение нескольких дней/недели, вырезали и вставили (не копируйте!) те же настройки от ~/.inputrc кому: /etc/inputrc который содержит настройки в масштабе всей системы, делая это доступным для всех пользователей в Вашей системе (включая гостя).

Коды:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

затем exit Ваш терминал (или удаленный терминал как шпаклевка) и открытый это снова...

Примеры:

  1. Когда у Вас есть 3 файла: file1, file2 и file3 и Вы вводите:

    e fTabTabTab

    это циклически повторится через:

    e file1
    e file2
    e file3
    

    и когда Вы хотите циклически повториться назад, просто поразить Shift+Tab

  2. Когда Вы вводите:

    very-complicated-command with lots of command line parameters
    

    и в следующий раз, когда Вам нужна та же команда, Вы просто вводите:

    very

    и это введет для Вас:

    very-complicated-command with lots of command line parameters
    

Это сохранит Вас тонна времени в ударе!;-)

46
ответ дан 11 April 2015 в 10:46

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

Похожие вопросы: