Кто-нибудь знает, как связать функциональные клавиши в Zsh? Я хочу использовать функциональные клавиши в программах, работающих на моем терминале, а не привязывать их к какой-либо функции в zsh. Я пытался поместить bindkey "\e [OP" key_f1 в .zshrc, но у меня нет такого виджета `key_f1 ', когда я пытаюсь это сделать. Предложения?
1 ответ
Чтобы явно назначить ключ себе, используйте
bindkey "\e[OP" self-insert
Чтобы освободить ключ, используйте
bindkey -r "\e[OP"
Чтобы получить символы для определенного ключа, вы можете просто использовать cat
: Таким образом, cat
Enter F1 выдает в моем терминале (URxVT) следующую строку: ^[OP
. Это может варьироваться в зависимости от терминала, особенно для комбинаций, таких как Ctrl+↑
Но что касается вашей конкретной проблемы: я сомневаюсь, что zsh
является причиной того, что функциональная клавиша не работает в вашей программе, потому что, когда программа работает, zsh
не должна захватывать какие-либо ключи. Я думаю, что более вероятно, что сама программа не понимает символы, которые ей передает терминал . Таким образом, вы можете попробовать другой терминал (xterm
работал в большинстве таких случаев для меня). Если это не удается, вам, вероятно, придется проверить раскладку клавиатуры X-сервера (~/.Xmodmap
в Linux, я, к сожалению, не знаю, где настроить OSX ...)