8 在我的shell中,我使用禁用了流控制stty -ixon。这在shell中以及当我在其中启动tmux和启动程序时都非常有效 tmux。 但是,当从命令行启动新会话并直接启动命令时,将不遵守流控制设置并 ctrl-s冻结终端。 这有效: tmux new-session -s foo vim 这不遵守stty流控制设置: tmux new-session -s foo vim 即使在后一种情况下,如何禁用流控制? terminal keyboard tmux — 马可 source 在tmux所有情况下全部禁用流控制是否足够?或者您想确定为什么在第一个示例中有效但在第二个示例中无效? — slm @slm首先,我想修复它。不过,我对tmux为何会如此表现感兴趣。 — 马可(Marco)
5 如果您stty -ixon在外壳程序的初始化中就非常简单:tmux创建新终端时,它将在默认情况下运行用户的默认外壳程序,从而在初始化期间禁用控制流。但是,当您要求tmux运行特定命令(在您的情况下为ViM)时,不会进行初始化,并且将应用默认终端设置(启用流控制)。 tmux new-session -s foo "stty -ixon; vim" 应该解决您的问题。 — 彼得 source
5 一种不需要更改tmux呼叫的解决方法是将stty呼叫包括在文件中$HOME/.zshenv。该文件由ZSH解析,甚至用于非交互式外壳。 echo 'stty -ixon' | tee -a ~/.zshenv # ... or ... echo 'stty -ixon' >> ~/.zshenv BASH用户必须设置环境变量BASH_ENV=$HOME/.zshenv才能使它起作用。 — 马可 source 2 我不知道它是做什么的,但是它成功了。将其添加到.zshrc和中.zshenv。但是要小心>。使用:echo 'stty -ixon' >> ~/.zshenv — firedev
tmux
所有情况下全部禁用流控制是否足够?或者您想确定为什么在第一个示例中有效但在第二个示例中无效?