39

I use character in my zsh theme's for prompt. But in tmux, my prompt was behaving weirdly, showing extra spaces, like this:

♪ ~   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

I recently discovered that I can set tmux encoding to utf8 by set-window-option -g utf8 on. Doing that, the space problem was gone but character changed to _. How can I get my back in tmux?

My zsh-theme:

PROMPT='%{$fg_bold[cyan]%} ♪ %{$fg[blue]%}%c%{$fg_bold[blue]%}$(git_prompt_info)$(git_remote_status)%{$fg_bold[blue]%} % %{$reset_color%}'
2
  • I couldn't get set-window-option to work for me not found cmd. Please, could write exact steps to reproduce it.
    – user.dz
    Jan 25, 2014 at 12:08
  • I used the tmux conf here (its also used here). It looks like tmux is converting every character that is not ASCII into _, when I set that option.
    – Sourabh
    Jan 25, 2014 at 18:06

3 Answers 3

62

Starting tmux with u flag solves this issue

tmux -u

I've created an alias of tmux in my zshrc

alias tmux='tmux -u'
4
  • 2
    Thanks for the flag! It was so frustrating with all the gibberish when using tmux and nvim would go crazy with powerline! This solved the issue! Thanks again.
    – Dave Amit
    Dec 27, 2016 at 7:23
  • For those who what to know why, check here, -u flag explicitly informs tmux that UTF-8 is supported
    – shellbye
    Jan 18, 2017 at 9:22
  • 2
    Interesting. I thought setting set -g utf8 on in ~/.tmux.conf would solve this issue, but apparently it didn't. Using the flag explicitly when calling tmux does works though. Thanks a lot, you saved me a lot of hassle!
    – Tim Visee
    Aug 14, 2018 at 15:06
  • 1
    For what it's worth, this recently broke for me, turns out it was due to me adding LC_ALL=C to my config, which forced ascii encoding.
    – Ehsan Kia
    Dec 2, 2019 at 17:19
8

Thanks for the flag part, but we can also set the below to the profile rc (e.g. .zshrc or bashrc) file

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

With this option set, no need to use the -u flag.

1
  • This works only if pasted above source $ZSH/oh-my-zsh.sh
    – Yesh
    Oct 16, 2021 at 9:41
0

If u use diffrent shell like "fish" or sh u can change enviroment variable of 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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.