我将tmux
与zsh
一起使用,并且所有键绑定都被破坏了。示例: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
)。
这是一个已知的错误吗?我该如何解决这个问题?
答案 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-keys
和status-keys
选项适用于它自己(复制/滚动模式及其命令提示符)