我在tmux 1.8中遇到此问题:我想将status-keys
选项设置为' emacs'因为我真的不喜欢在vi模式下输入命令。但是,在.tmux.conf中添加以下行无效:
set -g status-keys emacs
重新启动tmux时,tmux show-options -g | grep keys
说emacs
但实际行为是vi风格。
问题的根源是$EDITOR
环境变量,在我的情况下它设置为vim
。文件说明:
status-keys [vi | emacs]
Use vi or emacs-style key bindings in the status line,
for example at the command prompt. The default is emacs,
unless the VISUAL or EDITOR environment variables are set
and contain the string `vi'.
显然当环境变量是" vim"它强迫vi状态键。
有没有办法覆盖这种行为,并且尽管有环境变量,但提示符仍然表现为emacs风格?我显然可以解决这个问题(比如使用其他env变量启动tmux并稍后恢复原始版本)但我希望有一个干净的解决方案。
谢谢!
答案 0 :(得分:2)
如果EDITOR包含status-key
,则mode-keys
和vi
默认为vi
,但这只是 默认值(在启动期间,处理配置文件)。在配置中设置这些选项中的任何一个都应该覆盖基于EDITOR的默认值。
您是否还设置mode-keys
(控制copy-mode
中使用的关键地图和choose-…
命令)?
set -gw mode-keys emacs
答案 1 :(得分:0)
我遇到了这个问题,我想我只是想出来了。您是否偶然也使用ZSH(Z Shell)?
I found this post表示如果您的VISUAL和/或EDITOR设置为vi / vim,ZSH也会切换到“vi模式”。所以我在tmux中遇到的问题实际上是从ZSH冒出来的!
简而言之,请确保您可以在tmux之外的shell中使用emacs样式的密钥。如果您使用的是ZSH,则可以将bindkey -e
添加到.zshrc
以设置emacs绑定。然后在.tmux.conf
:
set -g mode-keys emacs
set -g status-keys emacs