Tmux在OSX ML中阻止了Ctrl-s

时间:2013-09-05 22:59:37

标签: macos vim tmux iterm2

我正在使用iTerm2 + Tmux + Vim。

这是我的dotfiles: https://bitbucket.org/furion/dotfiles/src

我遇到的问题是,在Tmux会话中打开Vim时,C-s绑定不起作用。

当我在常规iTerm2会话中运行Vim时,C-s工作正常。由于我经常使用这种击键,所以非常令人沮丧。

此外,此问题仅出现在OSX上。在我的Arch框,Tmux或没有,一切正常。

编辑: 我已经禁用了控制流程:

bind -r '\C-s'
stty -ixon
stty stop undef

此问题仅适用于OSX。此外,它仅在OSX上的Tmux下。没有Tmux没有问题。在Arch Linux上使用或没有Tmux,没问题。

3 个答案:

答案 0 :(得分:4)

它可能与流控制有关:历史上(现在仍然在某些终端),Ctrl-S暂停输出,Ctrl-Q恢复它。

iTerm2忽略了Ctrl-S,因为它假定它在300和2400波特调制解调器不常见的世界中没有用于流量控制。

我不确定,但我认为stty -ixon可能有所帮助。

(我暂时回答,因为已经过了5个小时,但我可能会对解决方案不以为然,即使我认为原因是正确的。)

答案 1 :(得分:1)

我想出了修复,但我不知道发生这种情况的原因

我发出TMUX命令重新加载配置文件也运行stty -ixon

这必须手动完成,即使它已在.bashrc.profile中设置,因为问题在初始化后显示为

以下是relevant TMUX config line

bind-key r run "tmux source-file ~/.tmux.conf; stty -ixon"

答案 2 :(得分:0)

我尝试在macOS上的iTerm上尝试修复bash中的Ctrl-S问题时,尽管有以下问题却没有激活forward-search-history(又名i-search),我发现了这个问题:

$ bind -p | grep 'forward-search-history'
"\C-s": forward-search-history

我发现将stty -ixon放在.bashrc中没有解决问题,但是放入.bash_profile确实可以解决。因此,也许这会对Google领导的其他人有所帮助。

$ grep stty ~/.bash_profile
stty -ixon