¿Cómo puedo crear mi propio esquema de colores?

16

¿Qué archivos necesito crear? ¿Qué debería estar dentro de estos archivos? ¿Hay un archivo de esquema de colores predeterminado en algún lugar que pueda usar y cambiar los valores de color en consecuencia?

dkns
fuente

Respuestas:

15

Ubicaciones de Colorscheme

Primero, Vim busca en sus carpetas de tiempo de ejecución un colorsdirectorio. Aquí es donde deben almacenarse todos los esquemas de colores ( :help 'runtimepath')

Esto significa que necesitará un archivo que viva en la ~/.vim/colorscarpeta. Los esquemas de colores predeterminados se encuentran en $VIMRUNTIME/colors, donde $VIMRUNTIMEsuele estar /usr/share/vim/vim74o en los /usr/local/share/vim/vim74directorios, dependiendo de cómo esté instalado Vim (sustituya vim74 por vim73 por Vim versión 7.3)

Ahora para llegar a la parte divertida.

Crear un esquema de colores

Para comenzar a crear su propio esquema de colores, le recomiendo que eche un vistazo a los esquemas de colores predeterminados y experimente con modificarlos.

Copie el esquema de colores predeterminado de la $VIMRUNTIME/colorscarpeta a su ~/.vim/colorscarpeta. Nómbrelo como algo que se distinga del nombre predeterminado del esquema de colores. Entonces, si copió el desertesquema de colores que viene con Vim de forma predeterminada, asigne un nombre al archivo como default_mod.vimo algo así. Abra el archivo de esquema de colores y cambie let g:colors_namepara distinguirse también del archivo de esquema de colores predeterminado. Por convención, esto debería ser el mismo que el nombre del archivo de esquema de colores.

En el esquema de colores, todo lo que tiene que hacer es dar los colores de ctermbg, ctermfg, guibg, guifg(para el fondo terminal, terminal de primer plano, fondo gui, gui colores de primer plano, respectivamente) para los diferentes construida en grupos de resalte. Para consultar la lista de grupos destacados que puede modificar, consulte :help highlight-default. Opcionalmente, también puede usar los atributos ctermy guipara especificar que desea que un grupo resaltado esté en negrita o cursiva.

Por ejemplo, esto establecerá un color verde para una Cadena:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

También puede usar enlaces destacados para vincular un grupo destacado a otro grupo. Esto es útil si desea que dos grupos resaltados sean del mismo color.

Por ejemplo, puede vincular el diffAddedgrupo resaltado al grupo resaltado de Cadena definido anteriormente:

highlight link diffAdded String

Akshay
fuente
Si solo copio uno de los archivos colorscheme.vim y luego lo coloco en una carpeta separada, ¿podré reutilizarlo en mis otras máquinas? Por ejemplo, si lo pongo en un repositorio en github, ¿podré clonarlo o habilitarlo en uno de los administradores de complementos?
dkns
@dkns, sí, exactamente. Por ejemplo, puede nombrar su esquema de colores como "dkns_colorscheme.vim", ponerlo en un directorio colors / y luego subirlo a Github. Si tiene instalado un administrador de complementos, la clonación de este repositorio hará que el esquema de colores esté disponible para Vim.
akshay
Otra pregunta. No estoy seguro si debería publicarlo aquí como un comentario o hacer otra pregunta general. ¿Cómo puedo encontrar valores de color para cterm? Me gustaría que este tema se vea igual en la interfaz gráfica de usuario y en la terminal, pero no sé cómo convertir los valores hexadecimales en valores cterm.
dkns 01 de
1
@dkns Dado que los colores del terminal dependen en gran medida de la paleta de colores utilizada en el emulador de terminal, esto es bastante difícil de hacer. Cuando estaba creando mi esquema de colores, me pareció útil mostrar cómo se ve cada uno de los 256 colores. Yo uso este pequeño script en mi carpeta bin. Puede usar un selector de color para luego elegir los colores para garantizar los mismos colores de interfaz gráfica de usuario y cterm. Yo iría de cterm-> gui y no al revés ya que hay más colores en el gui vim. Espero que ayude.
akshay
7

Echa un vistazo a sitios como Vivify y Villustrator . Básicamente le permiten crear gráficamente o ajustar un esquema y luego descargar los archivos necesarios.

Collin Peters
fuente
0

Hay algunas herramientas para hacer esto automático:

  • vivify : bastante complejo, debe seleccionar manualmente cada color para cada grupo de resaltado.
  • vimcolors.org : muy simple y fácil. Simplemente elija algunos colores y generará automáticamente el esquema para usted.
pablopunk
fuente
0

Otra gran herramienta es RNB de romainl que usa ERB . ERB (Embedded RuBy) es una característica de Ruby que le permite generar texto a partir de plantillas.

Por lo tanto, el uso de esta herramienta es bastante directo: primero debe definir diferentes variables que correspondan a la nomenclatura de su esquema de colores y, por supuesto, a su contenido real (cómo deben verse los colores, qué grupos desea usar, etc.) bastante sencillo porque el autor escribió muchos comentarios para ayudarte. Entonces, todo lo que necesita hacer es entregar su plantilla personalizada a erb y la herramienta generará los archivos correctos.

statox
fuente