Прежде всего, я нахожу это немного странным: по умолчанию zsh использует комбинации клавиш в стиле emacs (escape, сопровождаемый клавишей), если только он не находится в режиме vi, когда комбинации клавиш в стиле emacs отключены. zsh также переводит себя в режим vi, если вы используете редактор vi-like в качестве редактора по умолчанию. Итак, мне кажется, что вы, вероятно, изначально не были в режиме vi, пока не отредактировали свой zshenv.
Итак, сначала я хотел бы спросить: вы на 100% уверены, что всегда использовали режим vi? То есть bindkey -e
решает вашу проблему (попробуйте в открытой оболочке)?
Возможно, вам действительно будет лучше в режиме emacs (bindkey -e
). С другой стороны, может случиться так, что вы хотели бы работать в режиме vi, но было бы лучше с некоторыми привязками в стиле emacs.
Или, может быть, я совершенно не прав, и я должен просто сосредоточиться на вашем заявлении о привязке, которое написано неправильно.
Прежде всего, включение бита "vicmd" не позволяет этому работать в режиме вставки (нормальном): он работает только в том случае, если вы сначала нажмете escape (сам по себе), чтобы выйти из режима вставки для командного режима (как вы сделали бы в vim) , Таким образом, вы не можете нажать «esc-/» как аккорд (попробуйте нажать escape, отпустить его, затем нажать «/»).
Попробуйте следующую привязку:
bindkey '\e/' history-incremental-pattern-search-backward
Теперь вы должны иметь возможность нажать «escape-/» как аккорд и получить желаемый результат.