2011-06-21 12 views
36

Estoy usando vim en el modo de 256 colores en Solaris (conectado a través de Putty en Windows). Todo se ve bien y funciona bien fuera de tmux, pero dentro de tmux el color de fondo cambia periódicamente cuando se busca/se desplaza por un archivo.vim en tmux cambios de color de fondo cuando se busca

Así es como se supone que debe buscar:

Así es cómo aparece después de paginación de todo un poco:

Gracias!

Respuesta

47

As explained here, desactivar el color de fondo de borrado (BCE) en la limpieza de la opción t_ut terminal (ejecutar :set t_ut= en Vim y pulse control + L para refrescar la pantalla del terminal) de manera que los esquemas de color de trabajo correctamente cuando Vim se usa dentro de tmux y la pantalla GNU.

por el enlace de arriba, BCE puede ajustar en .vimrc añadiendo lo siguiente

if &term =~ '256color' 
    " disable Background Color Erase (BCE) so that color schemes 
    " render properly when inside 256-color tmux and GNU screen. 
    " see also http://snk.tuxfamily.org/log/vim-256color-bce.html 
    set t_ut= 
endif 
8

Parece un problema con la configuración de su término, o terminfo.

Asegúrate de que tu término en tmux es TERM=screen-256color y que tu caja solar tiene el terminfo correcto.

+0

Eso parece hacer pero cuando cambio a screen-256color, mis teclas F dejan de funcionar. – moshen

+0

teclas F como en el estándar {F, f} o como en las teclas de función? – jasonwryan

+1

Teclas de función ... Me di cuenta, fue una cosa fácil (http://www.howtogeek.com/58487/how-to-easily-multitask-in-a-linux-terminal-with-byobu/ ? amp), gracias! – moshen

17

Añadiendo una solución alternativa, ya que me encontré con este problema y solo lo resolví. Tenía el valor correcto de TERM, el archivo terminfo estaba allí, etc., pero el fondo solo se dibujaría detrás de las celdas que contenían caracteres imprimibles, o celdas a la izquierda de ellos.

Si cambia entre vim GUI y vim CLI menudo, es posible que poner algo como esto en su archivo .vimrc en algún momento:

if !has("gui_running") 
    set term=xterm 
endif 

(o en realidad cualquier primordial en absoluto del término variable dentro de .vimrc)

Cambiar la anulación terminal para pantalla-256color.

... 
set term=screen-256color 
... 
+1

Esto funcionó para mí también. Excepto que parece romper muchas asignaciones de teclado (por ejemplo, flechas en CommandT, ctrl + mapeos de flecha):/ –

+2

'set term = screen-256color' en' .vimrc' me ayudó. ¡Gracias! – Zelid

Cuestiones relacionadas