Чи є спосіб зробити так, щоб вкладка 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"з командного рядка; бо, я вважаю, що термінальний сеанс
Реорганізованого з вигодою непередбачливість протиставити плюси і мінуси використання [.]inputrcvs. .bash_profile.
Підказка капелюха, щоб підкреслити_d для його допомоги.
Примітка: редагування командного рядка в Bash надається бібліотекою Readline; налаштування його нетривіально, але варто того, щоб навчитися; його функції включають можливість визначати спеціальні комбінації клавіш для вставки заздалегідь визначених фрагментів тексту - див. Редагування командного рядка в Довідковому посібнику Bash
Щоб наполегливо зробити невідмітним регістр заповнення вкладки на Bash:
Варіант A: Якщо у вас вже є:
/etc/inputrcфайл (застосовується в масштабах всієї системи, модифікація вимагає sudo) та / або ~/.inputrcфайл (специфічний для користувача)
та / або
ви плануєте широко налаштувати бібліотеку читальних рядків та / або хочете зробити налаштування ефективними і для сценаріїв під час виклику read -e:
Додати рядок
set completion-ignore-case on
в будь-який файл, залежно від того, чи бажаєте ви, щоб налаштування було ефективним для всіх користувачів або поточного користувача (створіть файл, якщо потрібно).
Пов'язана команда, яка полегшує завершення імен файлів і каталогів:
set show-all-if-ambiguous on
Це робить зайвим натискання Tab двічі, коли є більше одного матчу.
Варіант B: Крім того, ви можете додати команди 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 впливає на інших користувачів (якщо останні не змінюють налаштування, на які вони впливають)? Тільки тоді, коли ми згадуємо про застереження;)
Щоб уникнути зміни конфігурації для всіх користувачів та уникнення кореневих дозволів, використовуйте наступне:
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc
Потім повторно увійдіть або перезавантажте ~ / .inputrc
/etc/inputrcабо~/.inputrcфайл, позначений,INPUTRC- це єдині місця, куди він може потрапити. Якщо ввести запит на Bash, не вийде.