Как я могу использовать ключ, отличный от <ENTER>, чтобы выйти из меню / виджета завершения zsh?

Как и многие пользователи zsh, у меня есть завершение, настроенное так, что когда я нахожусь в командной строке, и я вызываю завершение, появляется меню, которое можно перемещать с помощью стрелок направления. т.е. в моем ~/.zshrc

 autoload -Uz compinit compinit zstyle ':completion:*' menu yes select zstyle ':completion:*:*:cd:*' menu yes select 

Поэтому, если я хочу удалить каталог /var/log/nginx/somewebsite , я запустил команду, используя завершение, например:

 ubuntu% sudo rm -rf /var/l<TAB> lib/ local/ lock@ log/ 

Я перемещаю элементы с помощью указательных клавиш со стрелками, которые вставляются в командную строку, когда курсор перемещается над ними, как только на нужном выборе, нажмите ENTER в основном, чтобы выйти из виджета меню и вернуть курсор обратно в командную строку.
Проблема заключается в том, что используется как для приема элемента из меню завершения, так и для выполнения команды, и я продолжаю нажимать ENTER, думая, что я принимаю завершение, когда я выполняю эти частично полные команды! так что Мое вопрос в том, могу ли я изменить команду «принять предложение о завершении предложения и выйти из системы zsh» на что-то другое, кроме ENTER ?
например, TAB или даже Ctrl + y (то же, что и в keymap для завершения приема vim)

Я нашел документацию для этого в

  • man zshmodules
    • МОДУЛЬ ZSH / COMPLIST
      • выбор меню

Чтобы связать ключ Ctrl y, чтобы принять предложение о завершении, вы можете использовать

 bindkey ^Y accept-search 

В документации есть примечание

Обратите внимание, что следующие функции (функции complist) всегда выполняют одну и ту же задачу на карте выбора меню и не могут быть заменены определяемыми пользователем виджетами, а также не могут быть расширены функции:

поэтому, соответственно, вы не можете отвязать Enter от accept-search , на самом деле достаточно смешно команда

 bindkey -r ^M accept-search 

только успешно отменяет accept-line из обычной командной строки.