Выполнение zsh last_prompt для длинных списков

В настоящее время я завершаю завершение моей вкладки zsh:

 autoload -U compinit && compinit
 zstyle ':completion:*:default' menu select=0
 zstyle ':completion:*:default' select-scroll 0

Что мне нравится в этом:

  • недвусмысленные доработки завершаются немедленно
  • неоднозначные дополнения расширяются, насколько это возможно (первый удар вкладки), и двусмысленности получаются ко мне (второй удар)
  • нажатие на вкладку дальше (еще один шаг вкладки после появления списка). Я просматриваю меню-select'ions, то есть приглашение остается над списком двусмысленностей, один из них подсвечивается и вставляется в подсказку; нажав вкладку дальше, я перехожу к следующему элементу. Даже если список двусмысленностей не может быть отображен, тогда список под подсказкой прокручивается.

Что мне не нравится:

  • Если список слишком длинный для отображения, он сначала печатается полностью, и приглашение заканчивается ниже списка, и только со следующим шагом я снова вернусь в верхнюю часть терминала для режима выбора меню.

Итак, я хотел бы изменить поведение на:

  • недвусмысленные доработки завершаются немедленно
  • неоднозначные дополнения расширяются, насколько это возможно (первый удар вкладки), и двусмысленности получаются ко мне, ВСЕГДА под подсказкой, даже если список слишком длинный, чтобы его можно было отобразить полностью (не имеет значения, если первый или второй ход )
  • нажатие на вкладку дальше (еще один шаг вкладки после появления списка). Я просматриваю меню-select'ions, то есть приглашение остается над списком двусмысленностей, один из них подсвечивается и вставляется в подсказку; нажав вкладку дальше, я перехожу к следующему элементу. Даже если список двусмысленностей не может быть отображен, тогда список под подсказкой прокручивается.

Важным аспектом является то, что список двусмысленностей отображается до того, как первый будет вставлен в приглашение. В противном случае я уже мог бы использовать

zstyle ':completion:*:default' menu select=0 yes=0