Как автозаполнить длинные имена файлов в терминале

Если у меня есть в текущем каталоге файл с длинным именем, начинающимся с «build», я могу написать в консоли «build», нажмите Tab и введите автозаполнение full имя файла для меня. Однако, если у меня есть несколько файлов, начиная с build , автозаполнение не выполняется. PS: Это действительно ужасно, если у меня есть несколько длинных имен файлов, которые отличаются только расширением.

2
задан 5 March 2016 в 00:46
3 ответа

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

Поскольку я настроен на Linux, у меня действительно есть проблемы с тем, как работает автозаполнение Windows, думаю, это то, к чему вы привыкли; )

3
ответ дан 3 December 2019 в 09:03

У вас есть 2 варианта:

1) Вы можете ввести еще одну букву и снова табуляцию

2) Используйте оболочку с лучшим завершением. Я использую zsh, но у fish тоже удивительные (несколько лучше) завершения.

Для zsh, проверьте oh-my-zsh

РЕДАКТИРОВАТЬ: По крайней мере, в конфигурации zsh по умолчанию вам нужно дважды перейти на вкладку, прежде чем он начинает цикл между вариантами

2
ответ дан 3 December 2019 в 09:03

Что-то, что меня спасает, - это цикл bash по возможностям вместо показа глупого списка.

Поскольку bash использует 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

затем выйдите из вашего терминала (или удаленного терминала, например, putty) и откройте его снова ...

Примеры:

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

     ef  Tab  Tab  Tab 

    , он будет циклически перемещаться вперед через:

     e file1
    е файл2
    е файл3
     

    , а если вы хотите вернуться назад, просто нажмите Shift + Tab

  2. , когда вы наберете:

     очень сложная-команда с множеством параметров командной строки
     

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

     very 

    , и она наберет для вас:

     очень-сложная-команда с множеством параметров командной строки
     

Это сэкономит вам массу времени в bash! ; -)

Источник

2
ответ дан 3 December 2019 в 09:03

Теги

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