我的.zshrc文件包含
行bindkey -v
我试图将^ q或\ M-q绑定到推线,例如
bindkey "^q" push-line
但由于某种原因,它无法正常工作。
运行`bind key -v'确认
"^Q" push-line
但它实际上并没有做任何事情。其他控制映射,例如^ r,工作正常。
我可以成功地将“推送线”映射到“\ eq”,但我不喜欢这种行为。首先,我从不使用esc-类型绑定,其次这样做将它绑定到control,meta和escape,这是过度的。 (顺便说一下,它不应该只用`bindkey -m'绑定所有这些吗?我从来没有在我的.zshrc中设置它?)
所以,任何人都知道这里发生了什么?
答案 0 :(得分:2)
这些快捷方式由Software flow control (wikipedia)
使用 Ctrl+S
和Ctrl+Q
用于停止和恢复程序的输出。
试一试:
运行while (true) ; do echo $RANDOM ; sleep 1 ; done
按Ctrl+S
,输出停止
按Ctrl+Q
,输出恢复。
(我不确定程序是否像Ctrl+Z
一样停止,我认为它因为缺少输出而被卡住。Ctrl+C
来杀死程序。)
这些快捷方式可以接管您的快捷方式,但是如果您禁用此流量控制功能,它可以正常工作 您可以在How to unfreeze after accidentally pressing Ctrl-S in a terminal? - Unix and Linux中了解如何禁用它 试试并告诉我们。