Beachten Sie, dass Sie hier verschiedene Suchmethoden diskutieren:
Bei der Suche nach "the vi way" mit /oder ?werden alle in der Historie gespeicherten Befehle durchsucht.
Die Aufwärts- und Abwärtspfeiltasten haben etwas anderes: Sie möchten, dass sie Elemente durchlaufen, die in der Historie gespeichert sind, die (zu Beginn) dem entsprechen, was Sie bereits in der Befehlszeile eingegeben haben.
Ohne zu sehr ins Detail zu gehen, sollte Folgendes ein ziemlich narrensicherer Weg sein, um dies zu erreichen:
autoload -Uz history-search-end zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end bindkey -M vicmd '^[[A' history-beginning-search-backward-end \ '^[OA' history-beginning-search-backward-end \ '^[[B' history-beginning-search-forward-end \ '^[OB' history-beginning-search-forward-end bindkey -M viins '^[[A' history-beginning-search-backward-end \ '^[OA' history-beginning-search-backward-end \ '^[[B' history-beginning-search-forward-end \ '^[OB' history-beginning-search-forward-end