Как игнорировать регистр символов при использовании функции автодополнения команд в терминале Linux
Оригинал: How to Ignore Case When Using Tab Completion in the Linux Terminal
Автор: Lori Kaufman
Дата публикации: 16 августа 2016 г.
Перевод: А.Панин
Дата перевода: 6 октября 2016 г.
Интерфейс командной строки Linux является регистрозависимым. В процессе использования функции автодополнения команд по клавише Tab для быстрого перехода в директорию или вывода списка директорий вы должны использовать символы в том же регистре, что и символы в именах директорий. Однако, существует способ избавления этой функции от зависимости от регистра символов.
Функция автодополнения по клавише Tab позволяет ускорить и упростить ввод имен директорий. Вы можете просто начать ввод имени директории после приглашения командной оболочки и нажать клавишу Tab для автоматического завершения ввода ее имени. Например, для перехода в директорию Documents вы можете просто начать ввод с cd Docu , после чего нажать клавишу Tab . В результате сработает функция автодополнения команды и введенная команда превратится в cd Documents/ .
Вы можете сделать данную функцию регистронезависимой, добавив специальную директиву в файл конфигурации Linux с именем .inputrc . Данный файл конфигурации предназначен для описания раскладок клавиатуры для определенных условий на уровне командной оболочки (например, bash) и позволяет тонко настроить поведение интерфейса командной строки системы. Добавление директивы в упомянутый файл конфигурации не представляет каких-либо сложностей и мы покажем, как это сделать.
Существует два файла .inputrc : глобальный файл, директивы из которого влияют на поведение командных оболочек всех пользователей системы (/etc/.inputrc ) и локальный файл в домашней директории текущего пользователя, директивы из которого влияют на поведение командной оболочки лишь этого пользователя (~/.inputrc ). Символ ~ соответствует домашней директории пользователя, такой, как /home/lori/ . Локальный файл .inputrc имеет приоритет над глобальным и это означает, что все директивы, которые вы добавили в локальный файл, будут использоваться вне зависимости от содержимого глобального файла. В данной статье мы будем добавлять специальную директиву для игнорирования регистра символов в локальный файл из домашней директории пользователя, вы же можете добавлять ее в любой из упомянутых файлов.
Воспользуемся текстовым редактором под названием gedit для добавления директивы в файл конфигурации .inputrc . Используйте комбинацию клавиш Ctrl+Alt+T для открытия окна эмулятора терминала. После этого введите следующую команду для открытия файла .inputrc в текстовом редакторе и нажмите клавишу Enter :
gksu gedit ~/.inputrc
Если вы хотите модифицировать глобальный файл .inputrc , введите вместо нее следующую команду:
gksu gedit /etc/.inputrc
Если в вашей системе нет файла .inputrc , он будет автоматически создан в результате исполнения одной из этих команд либо в вашей домашней директории, либо в директории /etc .
После исполнения команды должен появиться диалог с предложением ввести ваш пароль, поэтому следует ввести в соответствующее поле пароль, который вы используете для входа в систему и нажать на кнопку "OK" .
Файл .inputrc может оказаться пустым и это вполне нормально. Для того, чтобы командная оболочка игнорировала регистр символов при использовании функции автодополнения команд следует добавить следующую строку в данный файл:
set completion-ignore-case on
После этого следует нажать на кнопку "Save" ("Сохранить" ).
Для закрытия окна текстового редактора gedit следует нажать на кнопку "X" в его левом верхнем углу.
Директива, добавленная в файл конфигурации .inputrc , никоим образом не повлияет на текущую сессию эмулятора терминала. Вы должны закрыть окно терминала и открыть его снова для того, чтобы изменения вступили в силу. Поэтому введите команду exit после приглашения командной оболочки и нажмите клавишу Enter , либо нажмите на кнопку "X" верхнем левом углу окна.
Примечание: вы можете увидеть несколько предупреждений в окне эмулятора терминала, но они никоим образом не влияют на работоспособность рассматриваемой функции.
Теперь, к примеру, при вводе cd docu и нажатии клавиши Tab ...
функция автодополнения будет работать даже несмотря на то, что регистр всех введенных символов не совпадает с регистром символов имени директории.
Если вы захотите отменить внесенные изменения и вернуться к стандартному поведению функции автодополнения команд, вы сможете просто открыть файл .inputrc , в который была добавлена директива, убрать строку с директивой, сохранить файл и закрыть текстовый редактор. Помните о том, что необходимо закрыть и снова открыть окно эмулятора терминала после редактирования файла .inputrc для вступления изменений в силу.
http://rus-linux.net/MyLDP/consol/ignore-case-when-using-tab-completion.html
|