Як TAB автоматично завершує пошук варіантів пошуку?


Відповіді:


22

Залежно від команди:

  • Хтось, можливо, написав функцію для генерації можливих доповнень аргументів, включаючи параметри. Ви знайдете функції для деяких команд у /etc/bash_completion.d/*(або в іншому місці в деяких системах). Ці функції реєструються вбудованою (наприклад, вказує bash викликати функцію при натисканні на команду). Вони використовують вбудований, щоб сказати баш "ось можливі доповнення".complete complete -F _find find_findTabfindcompgen
  • Для деяких команд bash викличе команду з аргументом --helpі проаналізує вихід. Такі команди можуть бути зареєстровані за допомогою completeвбудованого, наприклад complete -F _longopt ls. _longoptнасправді є функцією генерації завершення, яка відбувається для аналізу результатів команди, а не використання фіксованого списку. (Є й інші більш спеціалізовані функції завершення, які аналізують вихід команди для створення можливих завершень; шукайте /etc/bash_completion.d/*приклади.)
  • Для таких речей, як псевдоніми, функція завершення шукає їх у внутрішніх таблицях bash. completeВбудований має варіанти , які, наприклад , -Aдля псевдонімів.

10

Погляньте на файл

/ etc / bash_completion

і спостерігати за файлами з каталогу:

/etc/bash_completion.d

Ви знайдете відповідь.


2

Підтримка bash завершення надається в Debian та Ubuntu пакетом завершення bash . Також зазвичай потрібно прокоментувати наступні дані у /etc/bash.bashrcта / або .bashrcджерелах файлів завершення файлу bash. Далі від /etc/bash.bashrc:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

щоб це працювало. Зазвичай я це коментую в обох. Поводження з інтерактивними оболонками / входами в Debian є дещо безладним.

Подібні коментарі, імовірно, стосуються інших дистрибутивів, хоча, можливо, вони включають пошук за замовчуванням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.