Конфигурация или команда для чувствительного к регистру поиска в истории bash

Вопрос или проблема

Bash предоставляет интерактивные команды forward-search-history и reverse-search-history, которые обычно связаны с клавишами CTRL-s и CTRL-r соответственно.

Есть ли чувствительные к регистру эквиваленты или есть ли конфигурация для выполнения этих команд без учета регистра?

bind -P | grep -iE 'search|case' не дал ничего существенного.

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

set completion-ignore-case on

для zsh я использую это

setopt NO_CASE_GLOB
setopt NO_CASE_MATCH

Ответ или решение

Настройка поиска в истории Bash с учетом регистра – это задача, которую нельзя решать простыми комбинациями клавиш CTRL-S и CTRL-R. По умолчанию, команды forward-search-history и reverse-search-history выполняют поиск с учетом регистра. Если вы ищете способ выполнить регистронезависимый поиск по истории команд Bash, существует некоторый трюк, связанный с файлом ~/.inputrc.

Решение проблемы поиска в истории с учетом регистра в Bash

Для изменения поведения поиска на регистронезависимый следует использовать файл ~/.inputrc. Это настройки, специфичные для Readline – библиотеки, которая контролирует взаимодействие интерактивного ввода в Bash.

  1. Создайте или откройте файл ~/.inputrc в вашем домашнем каталоге.

  2. Добавьте следующую строку в этот файл:

    set completion-ignore-case on
    • Однако важно понимать, что данная строка отвечает за регистронезависимость только в автодополнении команд и файлов, но не в поиске истории. Поэтому этот подход поможет избежать регистрозависимости при автодополнении, но поиск в истории останется без изменений.
  3. Для фактической реализации регистронезависимого поиска в истории нет прямого классического решения в Bash. В качестве обходного пути можно использовать расширенные возможности других оболочек, таких как Zsh.

Пример для Zsh

Если вы используете Zsh, регистронезависимый поиск можно реализовать через следующие опции:

setopt NO_CASE_GLOB
setopt NO_CASE_MATCH

Эти команды изменяют поведение оболочки Zsh, делая ее нечувствительной к регистру при поиске и автодополнении.

Заключение

Хотя Bash в стандартной конфигурации и не поддерживает регистронезависимый поиск в истории, использование файла ~/.inputrc предоставляет удобные средства для настройки параметров автодополнения. Для пользователей, нуждающихся в расширенной функциональности, стоит обратить внимание на использование оболочки Zsh, которая предоставляет более гибкие возможности.

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

Оцените материал
Добавить комментарий

Капча загружается...