6

tmux 1.8 有这个问题:我想将status-keys选项设置为“emacs”,因为我真的不喜欢在 vi 模式下输入命令。但是将以下行添加到 .tmux.conf 无效:

set -g status-keys emacs

当 tmux 重新启动时,tmux show-options -g | grep keysemacs但实际行为是 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 风格?我显然可以解决这个问题(比如使用其他环境变量启动 tmux 并稍后恢复原始变量),但我希望有一个干净的解决方案。

谢谢!

4

2 回答 2

6

我遇到了这个问题,我想我只是想通了。您是否也使用 ZSH(Z Shell)?

我发现这篇文章说如果您的 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
于 2016-09-15T21:06:53.860 回答
3
于 2013-08-15T06:30:25.193 回答