键绑定发送错误的转义序列

时间:2014-03-02 15:25:06

标签: zsh tmux

我将tmuxzsh一起使用,并且所有键绑定都被破坏了。示例:Ctrl-p发送^P。我尝试在setw -g xterm-keys on中添加.tmux.conf,但这并没有解决问题。我还尝试手动获取.tmux.conf文件,并直接从tmux内设置选项,但这也没有。

我可以从ZSH(我为Ctrl-r尝试并且它有效)重新绑定各自行动的所有键,但这很乏味......

我在ArchLinux中使用tmux安装了1.9_a-1(版本zsh)和5.0.5(版本pacman)。

这是一个已知的错误吗?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

我设法通过将tmux别名化为EDITOR= VISUAL= tmux来解决问题(感谢此评论:How to force emacs-style status-keys in tmux?)。但我仍然不明白为什么要这样做。这似乎是一个错误......

答案 1 :(得分:0)

我在~/.tmuxrc中使用以下两个选项,并且不玩任何既不EDITOR也不VISUAL的游戏。这样我就不必依赖默认值,而是告诉tmux明确指出我想要的键模拟。

set -g mode-keys emacs
set -g status-keys emacs

答案 2 :(得分:0)

偶然发现了同样的问题。问题是zsh;它试图以与tmux相同的方式变得聪明。

我的解决方案是在保持EDITOR = vim的同时将密钥绑定设置为emacs。

export EDITOR='vim'
bindkey -e

参考文献:

http://zshwiki.org/home/zle/bindkeys

  

为什么Control-R不再工作?

     

你可能处于vi-Mode,因为你已经将$ EDITOR或$ VISUAL设置为以...开头   'VI'

http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Keymaps

  

如果其中一个VISUAL或EDITOR环境变量包含   shell启动时字符串'vi'然后它将是'viins',   否则它将是'emacs'。

tmux的mode-keysstatus-keys选项适用于它自己(复制/滚动模式及其命令提示符)