画像:zsh.org
zshのhistory-beginning-search-{back,for}ward-endはコマンド履歴に基づき補完してくれますが、途中で引っかかるような感じでうまく表示されませんでした。具体的には、(例えば)^Pを押すたび前方一致する以前のコマンドラインを表示してくれますが、まだ候補が存在するはずなのに一度入力行を編集しないと次の候補が表示されなくなります。
調べてみると、zsh-autosuggestionsのせいでした。.zshrcのzsh-autosuggestions.zshをsourceする記述の下に以下の行を追加すれば解決します。
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-beginning-search-forward-end history-beginning-search-backward-end)