temas schemes colores color change activar vim color-scheme

colores - vim color schemes list



vim colorchemes no cambia el color de fondo (9)

¿La configuración general para la ventana del terminal tiene algo que ver con eso?

Sí, los parámetros de terminal anulan los parámetros de vim (al menos en OSX e iTerm). Por ejemplo, tengo una secuencia de comandos siguiente en /Users/[username]/.bashrc

setBackground() { osascript -e "tell application /"iTerm/" set current_terminal to (current terminal) tell current_terminal set current_session to (current session) tell current_session set background color to $1 end tell end tell end tell" } vim() { (setBackground "{65025,65025,65025}" &) (exec vim $*) }

Lo anterior reasigna el comando terminal vim para ejecutar un cambio de color de fondo antes de ejecutar vim. La función de color de fondo es applescript (copié el script desde algún lugar ...). Funciona para iTerm. Creo que puedes adaptar esto para trabajar con terminal (Apple product + apple script -> debería funcionar).

br,
Juha

Intento aplicar varios esquemas de color en vim que he visto en la red. Independientemente del esquema que elija, el fondo permanece en blanco, aunque las capturas de pantalla del esquema aplicado muestran que el fondo debe ser de color.

En algunos esquemas, algunos de los fondos cambian de color, pero el espacio de las líneas que contienen texto sigue siendo blanco.

Estoy usando Vim 7.2 en un Mac. Acabo de empezar a jugar con aplicaciones que no son gui, por lo que todo debería ser más o menos como estaba recién salido de la caja.

¿La configuración general para la ventana del terminal tiene algo que ver con eso?

Al ejecutar macvim, todo se ve bien. Es solo cuando arranca vim desde el terminal, las cosas se ven extrañas ...


Creo que el problema podría ser la forma en que el color cambia el color predeterminado. He observado algunos esquemas de colores que establecen el valor predeterminado simplemente por:

set background=light

o

set background=dark

No estoy seguro de cuáles son las limitaciones de esos. No creo que esos trabajen en terminales.

En cualquier caso, debería poder establecer manualmente el fondo en un terminal mediante el resaltado ''Normal''. Insértelo en un punto antes de la mayoría de los comandos ''hi'' en el archivo de código de colores y debería proporcionar los valores por defecto con los que trabajarán. Por ejemplo:

hi Normal ctermbg=White ctermfg=Black guifg=Black guibg=White

Cambia ctermfg (color terminal de primer plano) y ctermbg (fondo de color de terminal) para que sea lo que quieras (o el color que esperabas ver en el esquema de colores pero ahora no lo ves). (Recuerde, sin embargo, si el esquema de colores ya tiene una configuración para hi Normal, entonces probablemente este no sea su problema).

Para ctermbg y ctermfg puede ingresar nombres de colores, pero creo que solo hay un número bastante limitado: Negro Oscuro Azul OscuroVerde OscuroCián OscuroRojo OscuroMagenta Marrón, OscuroAmarillo Gris, Gris Oscuro, Gris, Gris OscuroGris, OscuroGris Azul, Azul Claro Verde, Verde Claro Cián, Rojo Claro Rojo , LightRed Magenta, LightMagenta Yellow, LightYellow White

De lo contrario, debería poder usar un número del 0 al 255 en lugar del nombre del color. O este script da una idea aproximada, y le permite ver cómo también podría configurar para usar más nombres de colores: script Vim con configuraciones de color

Además, hay una serie de secuencias de comandos que lo ayudan a usar o convertir los esquemas de color escritos para la interfaz gráfica de usuario para su uso con cterm. P.ej,:

Soporte de Colorscheme para cterm

Does the overall settings for the terminal window have something to do with it?

Tal vez, pero estoy bastante seguro de que un esquema de colores de Vim debidamente escrito anulará las configuraciones de terminal que haya realizado. Al menos lo hacen por mí en Windows y en Ubuntu. . .


En Linux export TERM=xterm-256color en mi .bashrc . Eso hizo que vim se viera así (después de configurar set t_Co=256 ):

Cuando eliminé esa línea de mi .bashrc y abrí una nueva terminal (el exec bash no lo hizo) Esto es lo que obtengo:


Esto funciona para mí para cambiar fondos:

colorscheme hemisu function! g:ToggleBackground() if &background != ''dark'' set background=dark else set background=light colorscheme hemisu endif endfunction nnoremap <silent> <F3> :call g:ToggleBackground()<CR>

También intente configurar el fondo claro para algo como ctermbg=231 , para que tmux lo maneje mejor.


Estoy agregando una segunda respuesta porque es muy diferente de mi primera respuesta y puede indicar un problema real.

Si miras el sitio web real para el esquema de color aquí: sitio web de Molokai

verás una pregunta muy similar a la tuya. Aquí está la respuesta dada, que sugiere probar el comando :set t_Co=256 en tu vimrc para ver si soluciona las cosas:

"- Asegúrese de que está utilizando un terminal de consola con capacidad para 256 colores, no todos lo hacen (particularmente en mac). Es posible que necesite forzar explícitamente a Vim a usar eso haciendo" set t_Co = 256 "en su archivo .vimrc . - La consola de Windows está bien ... totalmente sin soporte, eso solo tiene 16 colores, así que es un desastre ".


Los terminales generalmente están limitados a 256 colores, mientras que la GUI solo está limitada por la profundidad de color del entorno de escritorio, generalmente 2 ^ 32.

Entonces, incluso si hay muchos esquemas de colores disponibles, implícitamente están diseñados para la GUI y no funcionarán para la versión del terminal.

Si observa esquemas de color en vim.org , a menudo se menciona GUI o 256. Por lo tanto, debe elegir cuál usar según el contexto.

Para convertir un esquema de GUI en terminal, puede usar el siguiente complemento: CSApprox .

También puede usar un esquema de colores diferente según el contexto, agregue lo siguiente en su .vimrc:

if has("gui_running") colorscheme [using any color you want] else colorscheme [using 256 colors] endif


Tengo esto en mi .vimrc y me solucionó este problema mientras usaba PuTTY.

set t_Co=256 set background=dark colorscheme mustang highlight Normal ctermbg=NONE highlight nonText ctermbg=NONE

Es importante cargar el esquema de colores antes de la configuración de ctermbg en .vimrc porque deben sobrescribir los mismos establecidos por el esquema de colores. Esto también significa que no puede cambiar el esquema de colores mientras Vim se está ejecutando y espera que funcione.


Tuve el mismo problema y descubrí que la respuesta a esta pregunta es en realidad triple, donde corregir solo dos de los tres no es suficiente. Necesitarás tener:

  1. Soporte de 256 colores en su terminal: la masilla con configuraciones predeterminadas tiene esto

  2. Vim tiene que reconocer que el terminal tiene 256 colores: "set t_Co = 256" en tu .vimrc lo hará

  3. El esquema de color necesita compatibilidad con los terminales de color con los atributos ctermbg y ctermfg para los aspectos destacados, no solo las versiones gui *. http://www.vim.org/scripts/script.php?script_id=2682 debería ser capaz de proporcionar estos automáticamente, y CSApprox que estoy usando definitivamente lo hace, pero requiere ya sea + gui-compilado Vim o un Vim lo suficientemente reciente versión (7.3 o más reciente).

El tercero parece ser el requisito que más se pierde. Escribí un breve artículo sobre mis propios errores sobre este tema esta mañana: http://codeandlife.com/2013/09/22/vim-colorschemes-with-putty-aka-gui-vs-xterm-color256/

El resultado final que me sucedió al probar diferentes configuraciones fue que cuando los colores funcionaban, solo las áreas de la pantalla con texto tenían el color de fondo adecuado. Volver a verificar la configuración de la Terminal de masilla "Usar color de fondo para borrar la pantalla" me arregló el problema final.


Use esta regla si usa Vim a través de SSH :

  1. Agregue a su .bashrc local:

    export TERM=xterm-256color

  2. Elimine de .bashrc cualquier definición de TERM .

Si usa el mismo .bashrc en ambos (local y remoto), use una variable de entorno temporal y nunca establezca TERM globalmente:

alias color-ssh=''TERM=xterm-256color ssh user@host''