【问题标题】:tmux is not using screen-256color even it is set in the config file即使在配置文件中设置了 tmux 也没有使用 screen-256color
【发布时间】:2017-03-21 06:11:22
【问题描述】:

我正在尝试让 tmux 使用 screen-256color 而不是 xterm-256color,因为不建议这样做。但是当我不使用 tmux 时,我想将其保留为 xterm-256color

我的一些设置,我目前正在使用 iTerm2 和 ssh 到我的开发 linux 盒子,它正在使用 zsh。

在我的 ~/.zshrc 中,我有:

export TERM="xterm-256color"

在我的 ~/.tmux.conf 中,我有:

set -g default-terminal "screen-256color"

使用此配置,没有 tmux,echo $TERM 返回 xterm-256color(这是正确的),使用 tmux,echo $TERM 仍然返回 xterm-256color 而不是 screen-256color。

我还需要设置什么才能使其正常工作吗?

谢谢!

【问题讨论】:

  • xterm-256color(错字?)

标签: terminal zsh tmux


【解决方案1】:

这不能按预期工作的原因是,在tmux 内部启动的zsh 会话覆盖了TERM

你不应该在你的 shell 中设置TERMTERM 是终端通知 shell 和其他应用程序其功能(颜色数量、特殊键的键序列等)的方式。如果您在 shell 中更改 TERM,您将更改 shell 和应用程序期望从终端获得的功能,而终端本身并不知道。通常这可能不是一个实际问题,但最好更改终端配置并在那里设置所需的值。

tmux 的配置中设置screen-256color 时,您已经这样做了,它本质上也是一个终端仿真器。为iTerm2 执行此操作(使用版本 3.0.10 测试):

  1. 打开首选项对话框(在菜单中:iTerm2首选项,或按+,)。
  2. 在对话框中转到 ProfilesTerminal
  3. 您可以在报告终端类型下为TERM 选择所需的值。

【讨论】:

  • 这应该是正确的答案。我们不应该在.zshrc 文件中设置TERM。或者 Tmux 中的 TERM 也将是 xterm-256color
【解决方案2】:

您可以修改您的.zshrc 文件以检查您是否在 tmux 中运行:

[ -z "$TMUX" ] && export TERM=xterm-256color

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多