zsh:无法在vi模式下绑定^ q或\ M-q

时间:2012-12-19 17:24:42

标签: zsh

我的.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中设置它?)

所以,任何人都知道这里发生了什么?

1 个答案:

答案 0 :(得分:2)

这些快捷方式由Software flow control (wikipedia)

使用

Ctrl+SCtrl+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中了解如何禁用它 试试并告诉我们。