Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I installed Ubuntu 11.10. Then downloaded Solarized theme for Gnome Terminal. From terminal my vim looks good: plugin vim-powerline displays correctly and syntax is highlighted with proper colors. But when I run tmux and there run vim - syntax highlight uses only one basic color and vim-powerline displays no colors. I looked at the FAQ on vim-powerline and solution should be this line in .tmux-config:

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

But it doesn't work. I looked at TERM and it's return 'xterm' so I tried:

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

But this also dosen't help.

This is the only line in .tmux.config. In .vimrc I have following lines:

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized
share|improve this question
    
No idea why you got no upvotes, not even from those who must have benefited by getting upvotes from their own answers. +1 from me. The question is sound and it helped me solve my own problem, too, by finding it. –  0xC0000022L Jan 21 '13 at 16:09
add comment

6 Answers

I am having the same problem on Ubuntu 10.04 LTS using Byobu 5.17 & tmux 1.5 using the latest Solarized from the GitHub repo.

I was able to partially fix this by specifying $TERM in the .bashrc file:

export TERM="xterm-256color"

It seems, also, that there is a bug filed on launchpad, but it is not yet resolved: byobu not displaying dircolors properly

share|improve this answer
add comment

Starting tmux with the following flag fixes this for me:

tmux -2

from tmux man page:

-2 Force tmux to assume the terminal supports 256 colours.

share|improve this answer
add comment

Terminal type should be set to screen-256color in ~/.tmux.conf. It tells tmux what to set the TERM evironment variable, so it won't work for the current session - start a new one and test then.

If it still doesn't work, you can run Vim using:

TERM=screen-256color vi

This sets the environment variable just for a one-off vi execution.

If that doesn't make vim display all the colours, test if your terminal (I'm not sure if you're testing with just one terminal emulator) is compiled to support the 256 colour palette - download and run the below Perl script from the terminal emulator in question.

http://www.frexx.de/xterm-256-notes/data/256colors2.pl

PS. I assume you've already corrected the typo jordanbrock noticed.

share|improve this answer
add comment

There's a typo in the last line of your .vimrc.

It should be colorscheme solarized

Not sure if that helps :)

share|improve this answer
add comment

You may be having the same problem documented in this answer.

Basically, .tmux.conf setting works, and TERM is set to screen-256color, but then tmux opens bash and calls your .bashrc, which sets TERM to something else (perhaps xterm-256color).

The solution is to set TERM in your terminal settings rather than in .bashrc. If that's not an option, you can check TERMinside .bashrc and not change it if it's already screen-256color.

share|improve this answer
add comment

In the shell starting tmux, check that $TERM is either xterm-256color or screen-256color. See how to change $TERM:

As an alternative, as Holy Mackerel said, you can force tmux to 256color via:

$ tmux -2
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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