Сделайте в bash табуляцию без учета регистра [дубликата]

40

Возможный дубликат: Завершение ввода без
учета регистра в Bash

Есть ли способ сделать завершение табуляции в bash без учета регистра? Например, если у меня есть файл с именем Hello.txtи я пытаюсь завершить его, набрав, heа затем Tabон не будет работать. Я должен был бы завершить это, напечатав He(обратите внимание на заглавную H) и Tab. Есть ли способ настроить bash, чтобы мне не пришлось сохранять случай, когда я набираю его и пытаюсь завершить его?

Wuffers
источник
Я рад узнать, что это работает в Linux, так как другой вопрос зависит от OSX, @sathya
earthmeLon

Ответы:

55

Создайте файл с именем .inputrcв вашем домашнем каталоге и поместите в него следующую строку:

set completion-ignore-case on

Затем откройте новую оболочку и попробуйте. Если в вашей системе существует файл / etc / inputrc, вам также следует добавить строку $include /etc/inputrc. Но нет способа сделать это условным, поэтому вы должны добавить его, только если этот файл существует.

Гордон Дэвиссон
источник
14
Это не позволит bash читать значения по умолчанию /etc/inputrc, нарушая такие вещи, как навигация с помощью ctrl-left / right. Не забудьте добавить $include /etc/inputrcв свой ~/.inputrc.
Николас Марчилдон
1
Вы также можете использовать bind -f ~ / .inputrc для перезагрузки этого изменения.
епископ
2
Я собираюсь включить комментарий @NicolasMarchildon в ответ, потому что он должен быть там
theEpsilon
Странно, это не работает для меня. Вот мой ~/.inputrc: pastebin.com/WVQmrNZu
Алексей Петренко
@AlexeyPetrenko Это выглядит хорошо для меня. Есть ли в файле какие-то невидимые символы? Попробуйте напечатать его с LC_ALL=C cat -vet ~/.inputrc- вы должны увидеть «$» в конце каждой строки, но ничего смешного. Кроме того, попробуйте bind -vи посмотрите, что он показывает для completion-ignore-caseпеременной. Наконец, есть ли что-то в другом файле инициализации оболочки, который может это изменить?
Гордон Дэвиссон