Це давнє запитання, але єдина (і прийнята) відповідь, в основному, говорить про те, як пересадити "схожий на emacs" history-incremental-search-backward
на режим vi. Незважаючи на те, що це цілком здійсненно і може бути правильним рішенням для вас, дивно, що ніхто не згадував "vi спосіб" історії пошуку.
Режим vi в zsh підтримує історію пошуку за допомогою стандартних клавіш vi / vim: /
і ?
, обидва доступні в командному режимі. (Натисніть, <Esc>
щоб перейти з вставки в командний режим, як in vi чи vim.)
Однак їхнє значення зворотне: Оскільки ви, як правило, хочете шукати історію вашої оболонки в зворотному порядку, /
здійснює зворотний пошук, тоді як ?
здійснює пошук вперед.
Після відображення першого звернення ви можете (так само, як in vi / vim), n
щоб продовжувати знаходити більше звернень у тому ж напрямку або N
повернути напрямок пошуку.
Відповідними вкладками vicmd
клавіатурних файлів за замовчуванням є:
"/" vi-history-search-backward
"?" vi-history-search-forward
"n" vi-repeat-search
"N" vi-rev-repeat-search