我正在使用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,没问题。
答案 0 :(得分:4)
它可能与流控制有关:历史上(现在仍然在某些终端),Ctrl-S暂停输出,Ctrl-Q恢复它。
iTerm2忽略了Ctrl-S,因为它假定它在300和2400波特调制解调器不常见的世界中没有用于流量控制。
我不确定,但我认为stty -ixon
可能有所帮助。
(我暂时回答,因为已经过了5个小时,但我可能会对解决方案不以为然,即使我认为原因是正确的。)
答案 1 :(得分:1)
我想出了修复,但我不知道发生这种情况的原因
我发出TMUX命令重新加载配置文件也运行stty -ixon
。
这必须手动完成,即使它已在.bashrc
或.profile
中设置,因为问题在初始化后显示为。
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