Есть ли способ сделать вкладку 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
чтобы включить
установить завершение-игнорирование на
Затем используйте ^X ^R
для перезагрузки конфигурации.
^X ^R
перезагрузитьinputrc
bind "set completion-ignore-case on"
из командной строки; потому что, я полагаю, только эта терминальная сессия
Перестройка с учетом ретроспективного взгляда, чтобы противопоставить плюсы и минусы использования [.]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 для чтения пользовательского ввода.
cd
команд. Это решит этот вопрос и сэкономит мне тысячи нажатий клавиш. :)
show-all-if-ambiguous
. Однако, поскольку вы говорите «в качестве альтернативы», есть ли какая-то польза от этого bind
, когда inputrc
файлы кажутся ненужными?
inputrc
, ни другого , но я с радостью создал ~/.inputrc
и добавил их, а также другие действительно полезные директивы. Я предполагаю, что мы предполагаем, что все читатели знают, что /etc/inputrc
влияет на других пользователей (если последний не отменяет затронутые настройки)? Просто пока мы упоминаем предостережения;)
Чтобы не изменять конфигурацию для всех пользователей и не получать root-права, используйте следующее:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
Затем войдите в систему или перезагрузите ~ / .inputrc
/etc/inputrc
или~/.inputrc
файл, обозначенный какINPUTRC
- единственные места, куда он может пойти. Ввод этого в приглашении Bash не будет работать.