Bash автозаповнення, як zsh


28

Я використовую bash, але я хотів би мати автоматичне заповнення стилю zsh (ви натискаєте вкладку, і вона вкладає можливості), а не те, що, здається, робить bash, це відображати список можливостей, але нічого не вибирати, поки я не введу ще декілька розмежувати. Як я можу отримати поведінку типу zsh в bash?

Пошук рішення знайшов безліч відповідей на інші запитання, тому я сподіваюся, що тут я зможу отримати просту відповідь (тобто що потрібно вставити в своє .bashrc).

(І щоб відповісти на очевидне запитання, мені потрібно використовувати bash тут, тому що я щойно приєднався до команди, і вони роблять деякі речі, щоб налаштувати bash, щоб полегшити навколишнє середовище. Я, мабуть, зрештою переконаюся, що я працюю так само до речі в zsh, але наразі простіше, якщо я використовую bash і просто змушую його поводитись як zsh під час інтерактивного використання.

Відповіді:


22

я використовую

bind 'TAB:menu-complete'

досягти цього


11
Коли я додаю це до свого .bashrc, вкладка переглядає можливі варіанти, а не перераховує їх у терміналі. Чи можливо отримати обидві поведінки?
Антоніос Хаджігеорґаліс

Для Shitf-Tabзавершення назад використовуйте bind '"\e[Z":menu-complete-backward'.
Айнар-Г

24

Щоб отримати перше завершення та список, ви можете додати наступне до bashrc

bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'

show-all-if-двозначне: Це змінює поведінку функцій завершення за замовчуванням. Якщо встановлено значення "увімкнено", слова, які мають більше ніж одне можливе завершення, призводять до того, що сірники перелічуються негайно, а не дзвонять у дзвінок. Значення за замовчуванням - "вимкнено".

див. Посібник по Bash для отримання додаткової інформації.

Редагувати:

Це не змушує bash працювати так, як zsh tho. Zsh заповнить до наступного неоднозначного матчу. Bash просто прокрутить усі матчі.

напр

$ ls ~/.ba<tab> .bashrc .bash_history .bash_profile

  • zsh: заповнюватиметься до ~ / .bash та представить список відповідностей, який зручно дозволяє додавати _ та натискати <tab>ще раз.
  • bash: просто прокрутить всі ~ / .ba * матчі.

8
Мені подобалося використовувати клавіші зі стрілками та візуальну індикацію автоматичного завершення zsh. Чи є спосіб домогтися такої поведінки басом? Я перемикаюся назад для кращої сумісності з сервером
CESCO

2

Слідом за ingkebil відповідь «s, для тих , які ставлять bindі setв inputrc:

$ tail -n 4 /etc/inputrc
# zsh like completion:
# /superuser/288714/bash-autocomplete-like-zsh
set show-all-if-ambiguous on
TAB:menu-complete

Мені подобається дотримуватися .bashrcчистоти.

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