Это древний вопрос, но единственный (и принятый) ответ в основном говорит о том, как перевести «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