Это древний вопрос, но единственный (и принятый) ответ в основном говорит о том, как перевести «emacs-подобный» history-incremental-search-backwardрежим в vi. Хотя это вполне выполнимо и может быть правильным решением для вас, немного странно, что никто не упомянул «путь vi» поиска в истории.
Режим vi в zsh поддерживает историю поиска с использованием стандартных клавиш vi / vim: /и ?, оба доступны в командном режиме. (Нажмите, <Esc>чтобы перейти из режима вставки в командный режим, как в vi или vim.)
Их смысл, однако, обратный: поскольку вы обычно хотите искать историю своей оболочки в обратном порядке, /выполняет обратный поиск, тогда ?как прямой поиск.
После отображения первого попадания вы можете (как и в vi / vim) использовать, nчтобы продолжить поиск большего числа попаданий в том же направлении или Nизменить направление поиска.
Соответствующие комбинации клавиш по умолчанию в таблице ключей vicmd:
"/" vi-history-search-backward
"?" vi-history-search-forward
"n" vi-repeat-search
"N" vi-rev-repeat-search