Я недавно установил bash-completion
(через homebrew). Теперь он пропускает файлы в списке завершения, которые я хочу показать, и полностью опускает допустимые параметры, такие как этот:
[alex@mbp foo]$ ls
bar.csv foo.csv
[alex@mbp foo]$ sh ../dosomething.sh fo<TAB>
((nothing shown))
Как тяжелый пользователь командной строки, это очень раздражает. Может кто-нибудь сказать мне, как отключить это поведение? Я не смог найти ничего полезного в документации или гугле.
В FAQ по завершению bash говорится:
Q. Код завершения bash запрещает некоторым командам выполнять файлы с расширениями, которые являются допустимыми в моей среде. Нужно ли отключать завершение для этой команды, чтобы завершить файлы, которые мне нужны?
A. Нет. Используйте M-/ to (в словах справочной страницы bash), чтобы попытаться завершить имя файла в тексте слева от курсора. Это обойдет любые ограничения на типы файлов, установленные кодом завершения bash.
Но это не приемлемое для меня решение - я хочу, чтобы "TAB" показывал все файлы / каталоги независимо от того, является ли расширение допустимым для файла или нет (именно так оно работало для меня последние 20 лет).
Как мне этого добиться?
Я бы предпочел настройку .bashrc
/.bash_profile
удаления глобальных сценариев завершения. Вот как я сейчас включаю bash-complete (это просто стандартная домашняя установка):
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
Обновление: я видел завершение этой вкладки имени файла в Bash, но это не совсем то, что я хочу, так как требует слишком много ручной работы для каждого возможного расширения файла на земле / моей системе.