Есть ли способ сделать вкладку Bash без учета регистра?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Я использую Mac OS X 10.6
Есть ли способ сделать вкладку Bash без учета регистра?
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.
Я использую Mac OS X 10.6
Обновите текст в /etc/inputrc
чтобы включить
set completion-ignore-case on
Затем используйте ^X ^R
для перезагрузки конфигурации.
Перестройка с учетом ретроспективы позволяет противопоставить преимущества и недостатки использования [.]inputrc
и .bash_profile
.
Наконечник шляпы, чтобы подчеркнуть за его помощь.
Примечание: редактирование командной строки в Bash обеспечивается библиотекой Readline; настраивать его нетривиально, но стоит учиться; его функции включают в себя возможность определения пользовательских сочетаний клавиш для вставки предопределенных фрагментов текста - см. Редактирование командной строки в Справочном руководстве Bash.
Для того, чтобы сделать настойчиво закладки завершения регистронезависимым в Bash:
Вариант А: если у вас уже есть:
/etc/inputrc
(применяется для всей системы, для изменения требуется sudo
) и / или файл ~/.inputrc
( зависит от пользователя)
и / или
вы планируете широко настраивать библиотеку readline и / или хотите сделать настройки эффективными и для сценариев, когда они вызывают read -e
:
Добавить строку
set completion-ignore-case on
в любой файл, в зависимости от того, хотите ли вы, чтобы настройки были эффективными для всех пользователей или текущего пользователя (создайте файл, если необходимо).
Связанная команда, которая упрощает заполнение имен файлов и каталогов:
set show-all-if-ambiguous on
Это избавляет от необходимости дважды нажимать клавишу Tab, если найдено более одного совпадения.
Вариант Б: в качестве альтернативы вы можете добавить команды Readline в свой файл ~/.bash_profile
конкретного пользователя в OS X (или ~/.bashrc
в Linux), передав их в качестве единственного аргумента встроенной команде bind
:
bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
Обратите внимание, что команды bind
в ~/.bash_profile
/ ~/.bashrc
имеют приоритет над эквивалентными командами в /etc/inputrc
или ~/.inputrc
.
Как подразумевалось выше, конфигурация Readline, определенная таким образом, не будет действовать в сценариях, которые вызывают read -e
чтобы активировать поддержку Readline для чтения пользовательского ввода.
Чтобы не изменять конфигурацию для всех пользователей и не получать root-права, используйте следующее:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
Затем войдите в систему или перезагрузите ~/.inputrc