Como posso criar meu próprio esquema de cores?

16

Quais arquivos eu preciso criar? O que deve estar dentro desses arquivos? Existe um arquivo de esquema de cores padrão em algum lugar que eu possa usar e alterar os valores de cores adequadamente?

dkns
fonte

Respostas:

15

Locais de Colorscheme

Primeiro, o Vim procura em suas pastas de tempo de execução um colorsdiretório. Aqui é onde todos os esquemas de cores devem ser armazenados ( :help 'runtimepath')

Isso significa que você precisará de um arquivo que esteja na ~/.vim/colorspasta. Os esquemas de cores padrão estão localizados em $VIMRUNTIME/colors, onde $VIMRUNTIMEestá normalmente /usr/share/vim/vim74ou nos /usr/local/share/vim/vim74diretórios, dependendo de como o Vim está instalado (substitua vim74 por vim73 pelo Vim versão 7.3)

Agora, para chegar à parte divertida.

Criando um esquema de cores

Para começar a criar seu próprio esquema de cores, sugiro dar uma olhada nos esquemas de cores padrão e experimentar modificá-los.

Então copie o esquema de cores padrão da $VIMRUNTIME/colorspasta para a sua ~/.vim/colorspasta. Nomeie algo que se distinga do nome do esquema de cores padrão. Portanto, se você copiou o desertesquema de cores que vem com o Vim por padrão, nomeie o arquivo como default_mod.vimou algo nesse sentido. Abra o arquivo colorscheme e altere let g:colors_namepara também se diferenciar do arquivo colorscheme padrão. Por convenção, esse deve ser o mesmo que o nome do arquivo colorscheme.

No colorscheme, tudo que você tem a fazer é dar às cores para ctermbg, ctermfg, guibg, guifg(para o fundo terminal, plano terminal, fundo gui, primeiro plano cores gui respectivamente) para os diferentes construído em grupos de destaque. Para verificar a lista de grupos de destaque que você pode modificar, confira :help highlight-default. Opcionalmente, você também pode usar os atributos cterme guipara especificar que deseja que um grupo de destaque fique em negrito ou itálico.

Por exemplo, isso definirá uma cor verde para uma String:

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

Você também pode usar os links de destaque para vincular um grupo de destaque a outro grupo. Isso é útil se você quiser que dois grupos de destaque sejam da mesma cor.

Por exemplo, você pode vincular o diffAddedgrupo de destaque ao grupo de destaque String definido acima:

highlight link diffAdded String

Akshay
fonte
Se eu apenas copiar um dos arquivos colorscheme.vim e colocá-lo em uma pasta separada, poderei reutilizá-lo em minhas outras máquinas? Por exemplo, se eu colocá-lo em um repositório no github, poderei cloná-lo ou ativá-lo em um dos gerenciadores de plugins?
dkns
@dkns, Sim, exatamente. Por exemplo, você pode nomear seu esquema de cores como "dkns_colorscheme.vim", colocá-lo em um diretório colors / e depois enviá-lo para o Github. Se você tiver um gerenciador de plug-ins instalado, a clonagem deste repositório disponibilizará o esquema de cores para o Vim.
akshay
Outra pergunta. Não tenho certeza se devo postá-lo aqui como um comentário ou fazer outra pergunta geral. Como posso encontrar valores de cores para o cterm? Eu gostaria que esse tema parecesse o mesmo no gui e no terminal, mas não sei como converter valores hexadecimais em valores cterm.
precisa saber é o seguinte
11
@dkns Como as cores dos terminais são amplamente dependentes da paleta de cores usada no emulador de terminal, isso é bastante difícil de fazer. Quando eu estava criando meu esquema de cores, achei útil exibir a aparência de cada uma das 256 cores. Eu uso esse pequeno script na minha pasta bin. Você pode apenas usar um seletor de cores para escolher as cores para garantir as mesmas cores de gui e cterm. Eu iria do cterm-> gui e não o contrário, pois há mais cores no gui vim. Espero que ajude.
akshay
7

Confira sites como Vivify e Villustrator . Eles basicamente permitem criar ou ajustar graficamente um esquema e depois baixar os arquivos necessários.

Collin Peters
fonte
0

Existem algumas ferramentas para tornar isso automático:

  • vivify : bastante complexo, você deve selecionar manualmente cada cor para cada grupo de realces.
  • vimcolors.org : muito simples e fácil. Basta escolher algumas cores e ele irá gerar automaticamente o esquema para você.
pablopunk
fonte
0

Outra ótima ferramenta é o RNB by romainl, que usa ERB . ERB (Embedded RuBy) é um recurso do Ruby que permite gerar algum texto a partir de modelos.

Portanto, o uso dessa ferramenta é bastante direto: primeiro você precisa definir diferentes variáveis ​​correspondentes à nomenclatura do esquema de cores e, claro, ao conteúdo real (como as cores devem ser exibidas, quais grupos você deseja usar etc.). bastante direto porque o autor escreveu muitos comentários para ajudá-lo. Então tudo que você precisa fazer é deixar seu modelo personalizado erb e a ferramenta gerará os arquivos certos.

statox
fonte