tmux 不使用 screen-256color 即使它在配置文件中设置
tmux is not using screen-256color even it is set in the config file
我正在尝试让 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 returns xterm-256color(正确),使用 tmux,echo $TERM 仍然返回 xterm-256color 而不是 screen-256color。
我还需要设置什么才能让它工作吗?
谢谢!
您可以修改您的 .zshrc
文件来检查您在 tmux 中是否 运行:
[ -z "$TMUX" ] && export TERM=xterm-256color
这没有按预期工作的原因是,在 tmux
内启动的 zsh
会话覆盖了 TERM
.
您不应在 shell 中从内部设置 TERM
。 TERM
是终端通知 shell 和其他应用程序有关其功能(颜色数量、特殊键的键序列等)的方式。如果您在 shell 中更改 TERM
,您会更改 shell 和应用程序期望从终端获得的功能,而终端本身并不知道它。通常这可能不是实际问题,但最好更改终端配置并在那里设置所需的值。
您在 tmux
的配置中设置 screen-256color
时已经这样做了,它本质上也是一个终端仿真器。为 iTerm2
执行此操作(使用版本 3.0.10 测试):
- 打开首选项对话框(在菜单中:iTerm2 → 首选项,或按⌘+,)。
- 在对话框中转到 配置文件 → 终端。
- 您可以在 报告终端类型 下为
TERM
选择所需的值。
我正在尝试让 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 returns xterm-256color(正确),使用 tmux,echo $TERM 仍然返回 xterm-256color 而不是 screen-256color。
我还需要设置什么才能让它工作吗?
谢谢!
您可以修改您的 .zshrc
文件来检查您在 tmux 中是否 运行:
[ -z "$TMUX" ] && export TERM=xterm-256color
这没有按预期工作的原因是,在 tmux
内启动的 zsh
会话覆盖了 TERM
.
您不应在 shell 中从内部设置 TERM
。 TERM
是终端通知 shell 和其他应用程序有关其功能(颜色数量、特殊键的键序列等)的方式。如果您在 shell 中更改 TERM
,您会更改 shell 和应用程序期望从终端获得的功能,而终端本身并不知道它。通常这可能不是实际问题,但最好更改终端配置并在那里设置所需的值。
您在 tmux
的配置中设置 screen-256color
时已经这样做了,它本质上也是一个终端仿真器。为 iTerm2
执行此操作(使用版本 3.0.10 测试):
- 打开首选项对话框(在菜单中:iTerm2 → 首选项,或按⌘+,)。
- 在对话框中转到 配置文件 → 终端。
- 您可以在 报告终端类型 下为
TERM
选择所需的值。