Come posso creare il mio schema di colori?


16

Quali file devo creare? Cosa dovrebbe essere all'interno di questi file? Esiste un file di colori predefinito da qualche parte che posso usare e modificare i valori di colore di conseguenza?

Risposte:


15

Posizioni di colori

Innanzitutto, Vim cerca nelle sue cartelle di runtime una colorsdirectory. Qui è dove dovrebbero essere memorizzati tutti i colori ( :help 'runtimepath')

Ciò significa che avrai bisogno di un file che risiede nella ~/.vim/colorscartella. I colori predefiniti si trovano in $VIMRUNTIME/colors, dove di $VIMRUNTIMEsolito /usr/share/vim/vim74o nelle /usr/local/share/vim/vim74directory, a seconda di come è installato Vim (sostituire vim74 per vim73 per Vim versione 7.3)

Ora per arrivare alla parte divertente.

Creazione di uno schema di colori

Per iniziare a creare il proprio schema di colori, consiglio vivamente di dare un'occhiata ai schemi di colore predefiniti e provare a modificarli.

Quindi copia il schema colori predefinito dalla $VIMRUNTIME/colorscartella alla tua ~/.vim/colorscartella. Assegnalo a un nome che si distingua dal nome predefinito dello schema dei colori. Quindi, se hai copiato lo desertschema dei colori che viene fornito con Vim per impostazione predefinita, dai un nome al file come default_mod.vimo qualcosa del genere. Aprire il file colorscheme e modificare il let g:colors_nameper distinguersi anche dal file colorscheme predefinito. Per convenzione, questo dovrebbe essere lo stesso del nome del file colorscheme.

Nel colorscheme, tutto ciò che dovete fare è dare i colori per ctermbg, ctermfg, guibg, guifg(per lo sfondo del terminale, in primo piano terminale, sfondo gui, in primo piano i colori GUI, rispettivamente) per la diversa costruito in gruppi di evidenziazione. Per consultare l'elenco dei gruppi di evidenziazione che è possibile modificare, consultare :help highlight-default. Facoltativamente, è anche possibile utilizzare gli attributi cterme guiper specificare che si desidera che un gruppo di evidenziazione sia in grassetto o in corsivo.

Ad esempio, questo imposterà un colore verde per una stringa:

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

È inoltre possibile utilizzare i collegamenti di evidenziazione per collegare un gruppo di evidenziazione a un altro gruppo. Ciò è utile se si desidera che due gruppi di evidenziazione abbiano gli stessi colori.

Ad esempio, è possibile collegare il diffAddedgruppo di evidenziazione al gruppo di evidenziazione String definito sopra:

highlight link diffAdded String


Se copio solo uno dei file colorscheme.vim e lo inserisco in una cartella separata, potrò riutilizzarlo su altri miei computer? Ad esempio, se lo inserisco in un repository su github, potrò semplicemente clonarlo o abilitarlo in uno dei gestori dei plug-in?
dns il

@dkns, Sì, esattamente. Ad esempio, puoi nominare il tuo colorscheme come "dkns_colorscheme.vim", metterlo in una cartella colors / e quindi inviarlo a Github. Se hai installato un gestore plug-in, la clonazione di questo repository renderà il sistema di colori disponibile per Vim.
akshay,

Un'altra domanda. Non sono sicuro se dovrei pubblicarlo qui come commento o fare un'altra domanda generale. Come posso trovare i valori di colore per cterm? Vorrei che questo tema avesse lo stesso aspetto su gui e terminal, ma non so come convertire valori esadecimali in valori cterm.
dkns

1
@dkns Poiché i colori dei terminali dipendono in gran parte dalla tavolozza dei colori utilizzata nell'emulatore di terminale, questo è piuttosto difficile da fare. Quando stavo creando il mio schema di colori, ho trovato utile visualizzare l'aspetto di ciascuno dei 256 colori. Uso questo piccolo script nella mia cartella bin. Puoi semplicemente usare un selettore di colori per scegliere i colori per garantire gli stessi colori gui e cterm. Vorrei andare da Cterm-> Gui e non viceversa poiché ci sono più colori nella GUI VIM. Spero possa aiutare.
akshay,


0

Ci sono alcuni strumenti per rendere questo automatico:

  • vivify : abbastanza complesso, devi selezionare manualmente ogni colore per ogni singolo gruppo di evidenziazione.
  • vimcolors.org : molto semplice e facile. Basta scegliere alcuni colori e genererà automaticamente lo schema per te.

0

Un altro ottimo strumento è RNB di romainl che utilizza ERB . ERB (Embedded RuBy) è una funzione di Ruby che consente di generare del testo dai modelli.

Quindi l'uso di questo strumento è piuttosto semplice: per prima cosa devi definire diverse variabili corrispondenti alla nomenclatura del tuo schema di colori e, naturalmente, al suo contenuto reale (Come dovrebbero apparire i colori, quali gruppi vuoi usare, ecc.) piuttosto semplice perché l'autore ha scritto molti commenti per aiutarti. Quindi tutto ciò che devi fare è fornire il tuo modello personalizzato da eliminare e lo strumento genererà i file giusti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.