Могу ли я сделать автозаполнение вкладок нечувствительным к регистру в Bash?

Терминал Ubuntu использует автозавершение с учетом регистра, как, я полагаю, и следовало ожидать от Linux.

Но я думаю, что часто было бы удобнее вместо этого использовать регистр без учета регистра, чтобы избавить вас от необходимости быть точным при вводе имени, и, вероятно, это стоило бы дополнительных ложных срабатываний. Можно ли изменить это поведение?

Для того, чтобы сделать bash регистр не чувствителен к текущему пользователю:

Запустите следующий сценарий командной строки в терминале:

# If ~/.inputrc doesn't exist yet: First include the original /etc/inputrc# so it won't get overridenif [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi# Add shell-option to ~/.inputrc to enable case-insensitive tab completionecho 'set completion-ignore-case On' >> ~/.inputrc

Запустите новую оболочку (снова откройте терминал).

Чтобы внести изменения в масштабах всей системы:

# add option to /etc/inputrc to enable case-insensitive tab completion for all usersecho 'set completion-ignore-case On' >> /etc/inputrc# you may have to use this instead if you are not a superuser:echo 'set completion-ignore-case On' | sudo tee -a /etc/inputrc

Для получения более подробной информации см. man bash . Да, это длинная страница, но bash - довольно сложная программа, и если вы хотите, просто найдите на этой странице "без учета регистра", чтобы перейти в соответствующий раздел. Люди обычно изучают bash по одному варианту за раз или по одному сценарию bash за раз, и требуется много времени, чтобы освоить все нюансы. Ваш интерес может быть разным.

Откройте терминал и введите приведенную ниже команду:

echo set completion-ignore-case on | sudo tee -a /etc/inputrc

Введите пароль. Перезагрузите терминал.

Если в каком-то случае вы хотите удалить регистр без учета регистра, просто отредактируйте файл /etc/inputrc, удалив set completion-ignore-case линия.

Это все.

Я знаю, что этот вопрос очень старый, но если я чего-то не упускаю, я думаю, что у меня есть супер простое решение, если вы используете bash.

echo "bind 'set completion-ignore-case on'" >> ~/.bashrc

Или просто добавьте строку с помощью вашего любимого текстового редактора. Перезапустите сеанс bash и наслаждайтесь.

Вы можете сделать это, установив переменную конфигурации для GNU readline, который обрабатывает ввод в интерактивной оболочке.

Необходимая переменная - это completion-ignore-case, и может быть установлен непосредственно в вашем сеансе bash с помощью:

bind "set completion-ignore-case on"

Его можно включить для всех будущих сеансов bash, поставив set completion-ignore-case on в сознание пользователей ~/.inputrc файл или система /etc/inputrc, чтобы включить его для всех пользователей. Это файл инициализации для readline.

(Обратите внимание, что ~/.inputrc вероятно, не существует, и вам придется его создать, это будет переопределите системную копию около /etc/inputrc. Здесь настроено множество полезных сопоставлений ключей, таких как Ctrl-Left/Right.

Способ решить эту проблему - поставить строку $include /etc/inputrc на вершине ~/.inputrc, например:

$include /etc/inputrcset completion-ignore-case on

Затем либо перезапустите bash, либо перезагрузите inputrc, например , с Ctrlx,Ctrlr.)

Более подробную информацию о readline и inputrc можно найти в man bash и man 3 readline.

Очень хороший вопрос. Как инструмент удобства использования, заполнение вкладок не должно быть таким строгим, как компьютерная система в целом, когда дело доходит до именования объектов.