Вопрос или проблема
- В 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 работала аналогично, выполните следующие шаги.
Шаги для настройки
-
Открытие файла конфигурации zsh:
Сначала вам нужно открыть файл конфигурации вашего zsh, который называется~/.zshrc
. Используйте текстовый редактор, который вам нравится. Например, вы можете сделать это с помощью команды:nano ~/.zshrc
-
Добавление команды для биндинга клавиш:
Внутри файла~/.zshrc
добавьте одну из следующих строк в зависимости от ваших предпочтений:-
Для поиска без шаблонов (аналогично bash):
bindkey "^R" history-incremental-search-backward
-
Для поиска с использованием шаблонов (с учетом подстановки) в zsh:
bindkey "^R" history-incremental-pattern-search-backward
В первом случае zsh будет выполнять поиск команд, которые содержат введенный вами текст в любом месте строки, как это делает bash. Во втором случае вы сможете использовать шаблоны, включая символы подстановки, что также позволяет более гибкое управление.
-
-
Сохранение изменений и выход:
После добавления необходимой строки, сохраните изменения и закройте редактор (в случае nano: нажмитеCTRL+X
, затемY
, чтобы подтвердить изменения, иEnter
для выхода). -
Применение изменений:
Чтобы ваши изменения вступили в силу, перезагрузите zsh или выполните следующую команду:source ~/.zshrc
Использование нового функционала
Теперь вы можете использовать комбинацию клавиш [CTRL]+[r]
для поиска в истории команд zsh. При вводе текста вы будете видеть все соответствующие команды, включая те, в которых совпадение происходит в середине строки. Это значительно упростит вашу работу и повысит эффективность при использовании терминала.
Дополнительные заметки
- История zsh сохраняется между сеансами, поэтому вам не стоит беспокоиться о потере команд, даже если вы закроете терминал.
- Используйте
history
для отображения всех ранее введенных команд, если вам нужна полная история. - Если вы желаете вернуть зш в первоначальное состояние, просто удалите добавленные строки из
~/.zshrc
и перезагрузите оболочку.
Следуя этим простым шагам, вы сможете настроить zsh для работы и поиска по истории команд более интуитивно, как в bash, что делает вашу работу более продуктивной и организованной.