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

zsh:无法在vi模式下绑定^q或\M-q,zsh,Zsh,My.zshrc文件包含以下行 bindkey -v 我正在尝试将^q或\m-q绑定到push line,例如 bindkey "^q" push-line 但由于某种原因,它不起作用 运行'bind key-v'确认 "^Q" push-line 但它实际上什么都没做。其他控件映射(如^r)工作正常 我可以成功地将“推线”映射到“\eq”,但我不喜欢这种行为。首先,我从不使用esc类型的绑定,其次这样做会将它绑定到控件、元和转义,这太过分了。(顺便说一句,它不是应该用'bindkey-m

My.zshrc文件包含以下行

bindkey -v
我正在尝试将^q或\m-q绑定到push line,例如

bindkey "^q" push-line
但由于某种原因,它不起作用

运行'bind key-v'确认

"^Q" push-line
但它实际上什么都没做。其他控件映射(如^r)工作正常

我可以成功地将“推线”映射到“\eq”,但我不喜欢这种行为。首先,我从不使用esc类型的绑定,其次这样做会将它绑定到控件、元和转义,这太过分了。(顺便说一句,它不是应该用'bindkey-m'这样绑定所有这些文件吗?我从来没有在.zshrc中设置过这个?)


那么,有人知道这里发生了什么吗?

这些快捷方式是

Ctrl+S
Ctrl+Q
用于停止和恢复程序的输出

要尝试它:
运行
while(true);不要重复$RANDOM;睡眠1;完成

按Ctrl+S,输出停止。
Ctrl+Q
,继续输出。
(我不确定程序是否像使用
Ctrl+Z
那样停止,我认为它因缺少输出而无法正常运行。
Ctrl+C
终止程序。)

这些快捷方式会取代您的快捷方式,但如果您禁用此流量控制功能,它可能会工作。
您可以在中学习如何禁用它。

试试看,告诉我们。

如果你用Ctrl-z暂停一个程序,你可以用“fg”命令恢复它。另外,我应该能够绑定meta-q,因为据我所知,根本没有meta-binding(至少在我的系统上),但这也不起作用。我要重申,“\eq”同时绑定escape-e、meta-q和ctrl-q–在这种情况下,ctrl-q可以工作,而无需禁用流控制。我绑定了“^q end of line”,它不起作用,我运行了
stty-ixon
,然后快捷方式工作,使用emacs或vi模式。(我通常使用emacs模式)。所以我不确定我能重现你的问题。请在
manzshzle
中尝试更多内容并查找信息,或者发出准确的命令进行尝试,我可以告诉您发生了什么。我用的是zsh 4.3.10,你呢?嗯,我的也一样。我发现必须使用“^q”而不是“\eq”显式禁用启动/停止输入控制有点违反直觉。