UTF-8 字符在 tmux 中无法正确显示

UTF-8 字符在 tmux 中无法正确显示

在主题中使用字符zsh作为提示。但在 tmux 中,我的提示行为异常,显示多余的空格,如下所示:

♪ ~   I can type from here
♪ ~ Instead of here like in zsh, and sometimes when I do stuff like cd
♪ ~   cd ~
♪ ~ cdcd /
♪ ~ ^^These 2 chars just show up but are not actually part of command and not delete-able

我最近发现我可以通过 来将 tmux 编码设置为 utf8 set-window-option -g utf8 on。这样做后,空格问题就消失了,但字符变为了_。我该如何恢复tmux

我的 zsh 主题:

PROMPT='%{$fg_bold[cyan]%} ♪ %{$fg[blue]%}%c%{$fg_bold[blue]%}$(git_prompt_info)$(git_remote_status)%{$fg_bold[blue]%} % %{$reset_color%}'

答案1

使用uflag 启动 tmux 可以解决这个问题

tmux -u

我在 zshrc 中创建了 tmux 的别名

alias tmux='tmux -u'

答案2

感谢您的标记部分,但我们也可以将以下内容设置为配置文件 rc(例如.zshrcbashrc)文件

export LC_ALL=en_IN.UTF-8
export LANG=en_IN.UTF-8

设置此选项后,无需使用 -u 标志。

答案3

如果你使用不同的 shell,比如“fish”或者 sh,你可以改变 tmux 的环境变量

$ tmux setenv 'LC_ALL' 'en_IN.UTF-8'

$ tmux setenv 'LANG' 'en_IN.UTF-8'

$ tmux show-environment

DISPLAY=:0.0
-KRB5CCNAME
LANG=en_IN.UTF-8                          <-enviroment variable
LC_ALL=en_IN.UTF-8
SSH_AGENT_PID=1269
-SSH_ASKPASS
SSH_AUTH_SOCK=/tmp/ssh-tGUWJ874wmOG/agent.1193
-SSH_CONNECTION
VIRTUAL_ENV=/home/Jai_BholeNath/.tmux.conf
-WINDOWID
XAUTHORITY=/home/Jai_BholeNath/.Xauthority


相关内容