Сделайте поиск истории zsh вести себя как обратный поиск в истории bash.

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

  • В bash нажатие [CTRL]+[r] откроет приглашение reverse-i-search.
  • Как я могу искать в истории zsh аналогичным образом?

Примечание: Искровой запрос попадет в середину полной команды, вместо того чтобы совпадать с её началом, как требуется обычным поиском zsh.

Чтобы сделать zsh похожим на bash при нажатии [CTRL]+[r]:

# для поиска без шаблона, как в bash 
bindkey "^R" history-incremental-search-backward

или

# для поиска по шаблону (подстановочный знак `*` будет использовать автозаполнение zsh)
bindkey "^R" history-incremental-pattern-search-backward

Примечание: Добавьте строку в ваш ~/.zshrc, чтобы сделать это постоянным.

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

Как настроить поиск истории zsh, аналогичный reverse-i-search в bash

Если вы переходите с bash на zsh, вы можете заметить разницу в том, как обрабатывается история команд. При нажатии комбинации клавиш [CTRL]+[r] в bash открывается режим reverse-i-search, позволяющий быстро искать по истории команд, включая частичные совпадения. Если вы хотите, чтобы zsh работала аналогично, выполните следующие шаги.

Шаги для настройки

  1. Открытие файла конфигурации zsh:
    Сначала вам нужно открыть файл конфигурации вашего zsh, который называется ~/.zshrc. Используйте текстовый редактор, который вам нравится. Например, вы можете сделать это с помощью команды:

    nano ~/.zshrc
  2. Добавление команды для биндинга клавиш:
    Внутри файла ~/.zshrc добавьте одну из следующих строк в зависимости от ваших предпочтений:

    • Для поиска без шаблонов (аналогично bash):

      bindkey "^R" history-incremental-search-backward
    • Для поиска с использованием шаблонов (с учетом подстановки) в zsh:

      bindkey "^R" history-incremental-pattern-search-backward

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

  3. Сохранение изменений и выход:
    После добавления необходимой строки, сохраните изменения и закройте редактор (в случае nano: нажмите CTRL+X, затем Y, чтобы подтвердить изменения, и Enter для выхода).

  4. Применение изменений:
    Чтобы ваши изменения вступили в силу, перезагрузите zsh или выполните следующую команду:

    source ~/.zshrc

Использование нового функционала

Теперь вы можете использовать комбинацию клавиш [CTRL]+[r] для поиска в истории команд zsh. При вводе текста вы будете видеть все соответствующие команды, включая те, в которых совпадение происходит в середине строки. Это значительно упростит вашу работу и повысит эффективность при использовании терминала.

Дополнительные заметки

  • История zsh сохраняется между сеансами, поэтому вам не стоит беспокоиться о потере команд, даже если вы закроете терминал.
  • Используйте history для отображения всех ранее введенных команд, если вам нужна полная история.
  • Если вы желаете вернуть зш в первоначальное состояние, просто удалите добавленные строки из ~/.zshrc и перезагрузите оболочку.

Следуя этим простым шагам, вы сможете настроить zsh для работы и поиска по истории команд более интуитивно, как в bash, что делает вашу работу более продуктивной и организованной.

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

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