Vim en tmux muestra colores incorrectos

57

Instalé Ubuntu 11.10. Luego descargué el tema Solarized para Gnome Terminal. Desde la terminal, mi vim se ve bien: el complemento vim-powerline se muestra correctamente y la sintaxis se resalta con los colores adecuados. Pero cuando ejecuto tmux y ejecuto vim, el resaltado de sintaxis usa solo un color básico y vim-powerline no muestra colores. Miré las preguntas frecuentes sobre vim-powerline y la solución debería ser esta línea en .tmux-config:

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

Pero no funciona. Miré a TERM y devuelve 'xterm', así que intenté:

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

Pero esto tampoco ayuda.

Esta es la única línea en .tmux.config. En .vimrc tengo las siguientes líneas:

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
dhuCerbin
fuente
No tengo idea de por qué no obtuviste votos positivos, ni siquiera de aquellos que deben haberse beneficiado al obtener votos positivos de sus propias respuestas. +1 de mi parte La pregunta es acertada y también me ayudó a resolver mi propio problema al encontrarlo.
0xC0000022L

Respuestas:

54

Comenzar tmux con el siguiente indicador me soluciona esto:

tmux -2

de la página del manual de tmux:

-2 Fuerza a tmux a asumir que el terminal admite 256 colores.

Caballa Santa
fuente
1
Buena pista Cuando la versión Cygwin de la pantalla comenzó a fallar vim, volví a tmux nuevamente muy rápidamente. Quiéralo.
Grantbow
1
FYI: esto fue lo único que funcionó para mí con tmux 2.3 y la última línea eléctrica. Los colores en la barra de estado vim y tmux eran realmente raros.
Plasty Grove el
28

Tengo el mismo problema en Ubuntu 10.04 LTS con Byobu 5.17 y tmux 1.5 con el último Solarized del repositorio de GitHub.

Pude solucionar parcialmente esto especificando $TERMen el .bashrcarchivo:

export TERM="xterm-256color"

Parece, también, que hay un error archivado en el launchpad, pero aún no se ha resuelto: byobu no muestra los colores del directorio correctamente

Raminoide
fuente
2
¡Esto es lo único que funcionó para mí!
Tranquille
También funcionó en Ubuntu 14.04 con tmux 2.0
dukedave
Esta es la solución en OS X también jaja
Jay
27

esto funcionó para mí

en .tmux.conf

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

en .vimrc

set term=screen-256color

eliminar el valor del término anterior para .vimrc, créame, esto funcionará

kiran ps
fuente
1
No funciona para mi tmux 1.8, vim 7.4.1816, ubuntu x86_64 con kernel 3.13.0-92-generic. FYI.
fstang
1
Funcionó para mí sin la configuración .vimrc, solo .tmux.conf.
Geison Santos
¡La configuración .tmux.conf hizo el truco para mí!
hesselbom
4

El tipo de terminal debe establecerse en screen-256color en ~ / .tmux.conf. Le dice a tmux qué configurar la variable de entorno TERM, por lo que no funcionará para la sesión actual: inicie una nueva y pruebe luego.

Si aún no funciona, puede ejecutar Vim usando:

TERM=screen-256color vi

Esto establece la variable de entorno solo para una ejecución vi única.

Si eso no hace que vim muestre todos los colores, pruebe si su terminal (no estoy seguro de si está probando con un solo emulador de terminal) está compilado para admitir la paleta de 256 colores: descargue y ejecute el siguiente script de Perl desde El emulador de terminal en cuestión.

http://scie.nti.st/dist/256colors2.pl

PD. Supongo que ya ha corregido el error tipográfico que Jordania notó.

Marcin Kaminski
fuente
2

Como lo explicó Marcin Kaminski, si TERM=screen-256color vim <filename> funciona para usted, simplemente agregue lo siguiente a su.bashrc

TERM=screen-256color

y siguiendo en su .tmux.conf:

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

Tuve el mismo problema, esto funciona para mí.

usuario3908054
fuente
Este fue el único que funcionó para mí (tmux 1.8).
Yamaneko
En realidad, acabo de probar, y solo cambiar TERM=screen-256colorfue suficiente para mí, independientemente de configurar tmux en screen-256coloro para xterm-256color. ¡Gracias!
Yamaneko
1

Hay un error tipográfico en la última línea de tu .vimrc.

Debería ser colorscheme solarized

No estoy seguro si eso ayuda :)

jordanbrock
fuente
0

Es posible que tenga el mismo problema documentado en esta respuesta.

Básicamente, la configuración .tmux.conf funciona, y TERMse establece en screen-256color, pero luego tmux abre bash y llama a su .bashrc, que establece TERMalgo más (tal vez xterm-256color).

La solución es establecer TERMen la configuración de su terminal en lugar de en .bashrc. Si esa no es una opción, puede verificar TERMdentro de .bashrc y no cambiarlo si ya está screen-256color.

jtpereyda
fuente
0

En el shell que inicia tmux, verifique que $TERMsea xterm-256coloro screen-256color. Vea cómo cambiar $ TERM :

Como alternativa, como dijo Holy Mackerel , puede forzar tmux a 256 colores a través de:

$ tmux -2
Wernight
fuente
0

[Solución] [1] que puede perturbar su visión y hacer que Vim sea desagradable de usar durante un período prolongado de tiempo.

Puede solucionar esto ejecutando: set term = screen-256color en Vim o reiniciando Vim en el entorno TERM = screen-256color, como recomiendan algunos expertos: http://sunaku.github.io/vim-256color-bce.html

JEnriquePs
fuente
2
¿Qué quieres decir con [Solucion] [1]? ¿Estaba tratando de referirse o vincular a otra respuesta? Las respuestas no siempre aparecen en el mismo orden. Recomiendo ampliar esto para aclarar lo que está diciendo que puede "perturbar su visión y hacer que Vim sea desagradable de usar durante un período prolongado de tiempo".
Eliah Kagan
0

En su .bashrc o .zshrc simplemente agregue

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

y también comenzar con el tmux -2

Talal
fuente
0

Para aquellos que consumen tiempo en colores y si vim solarizado no funciona en tmux, o cansado de encontrar colores de vim, esto debería funcionar en un minuto, también es del repositorio oficial de la siguiente manera.

yum install vim-jellybeans

o

mkdir -p ~/.vim/colors
cd ~/.vim/colors
curl -O https://raw.githubusercontent.com/nanotech/jellybeans.vim/master/colors/jellybeans.vim
touch ~/.vimrc 
sed -i '/colorscheme/d' ~/.vimrc
echo colorscheme jellybeans >> ~/.vimrc

esto lo arreglará con el hermoso conjunto de colores y los patrones son tan enfocados y útiles, si también intenta establecer esos resaltados, palabras de búsqueda, eso es todo. todo ya está listo para usar. Incluso puede cambiar los colores en el archivo de configuración.

Si no desea instalar nada más que una solución simple y rápida, ignore lo anterior e intente esto en vim

:colo ron También puede reemplazar 'ron' con los siguientes conjuntos e incluso restaurar a solo default

blue 
darkblue 
default
delek
desert
elflord
evening
koehler
morning.vim
murphy
pablo
peachpuff
ron
shine
slate
torte
zellner

y guardar en .vimrc

colo ron
syntax on
Seandex
fuente
Quien dio la retroalimentación negativa. déjame escuchar la razón válida.
Seandex