Como obter a lista de todos os esquemas de cores instalados no Vim?


431

Existe uma maneira de obter uma lista de todos os esquemas de cores instalados no Vim? Isso tornaria muito fácil selecionar um sem olhar para o .vimdiretório.

Respostas:


620

Tipo

:colorschemeem seguida, Spaceseguidos por TAB.

ou como Pedro disse,

:colorschemeem seguida, Spaceseguido pelaCTRLd

A versão curta do comando é :colopara que você possa usá-lo nos dois comandos anteriores, em vez de usar o "formulário longo".

Se você deseja encontrar e visualizar mais temas, existem vários sites como o Vim colors


41
Também tente #<c-d>
Peter Rincker

1
<cd> é realmente melhor se você tiver muitos esquemas instalados.
Xavier T.

2
Ou se você tiver um :set wildmenucerto efeito, como se você estivesse <c-d>pressionando a guia.
Conrad.Dean

Trabalhou para mim depois que adicionei espaço depois :colorscheme. Talvez seja algo trivial, no entanto, levei tempo para revelar.
jutky

4
:colonão é realmente a forma abreviada . Foi concluída porque não há comandos conflitantes. Se você fez um comando como "colobanana", :coloteria mais de uma "forma longa", para que não funcionasse como sugerido.
Dllnmc

53

Você pode ver a lista de esquemas de cores em /usr/share/vim/vimNN/colors(com NNa versão, por exemplo, vim74para o vim 7.4).

Isso é explicado aqui .

Nos servidores linux eu uso via ssh, TABimpressões ^Ie CTRLdimpressões ^D.


10
Isso perde os esquemas de cores instalados pelo usuário (no diretório inicial).
Cristian Ciupitu 5/10

4
O caminho para as tabelas de cores, exatamente o que eu estava procurando, obrigado!
Corepuncher

1
Note que o NNnovimNN corresponderá à versão do vim, por exemplo, vim74para o vim 7.4. Só queria salientar isso, porque sou lento e isso me fez dar uma olhada dupla quando fui olhar;)
P Adam P

1
@AdamP Adicionei a precisão na resposta.
Fabien

43

Apenas para uma referência conveniente, pois vejo que muitas pessoas pesquisam esse tópico e são muito preguiçosas ... desculpe, ocupadas, para verificar a si mesmas (inclusive eu). Aqui está uma lista do conjunto padrão de esquemas de cores para o Vim 7.4:

blue.vim
darkblue.vim,
delek.vim
desert.vim
elflord.vim
evening.vim
industry.vim                                                                                                                                                 
koehler.vim                                                                                                                                                  
morning.vim                                                                                                                                                  
murphy.vim                                                                                                                                                   
pablo.vim                                                                                                                                                    
peachpuff.vim                                                                                                                                                
ron.vim                                                                                                                                                      
shine.vim                                                                                                                                                    
slate.vim                                                                                                                                                    
torte.vim                                                                                                                                                    
zellner.vim 

5
Lista muito útil. Para aqueles com olhos mais velhos e mais ocupados, aqui estão os que eu acho mais legíveis: delek, koehler, slate & zellner. Eu selecionei o zellner.
theRiley

Boas escolhas, mas talvez um pouco demais da cor vermelha para mim. Eu prefiro o deserto, que usa turquesa / azul claro. (No vim, digite: Cores do deserto)
HAltos

Eu sempre usei torta que, para mim, parece ter um bom contraste e não tenta ser um "estilo", e não "desperdiça largura de banda de contraste", tornando as cores semelhantes.
NeilG


9

Aqui está uma pequena função que escrevi para experimentar todos os esquemas de cores no diretório $ VIMRUNTIME / colors.

Adicione a função abaixo ao seu vimrc, abra o arquivo de origem e chame a função a partir do comando

function! DisplayColorSchemes()
   let currDir = getcwd()
   exec "cd $VIMRUNTIME/colors"
   for myCol in split(glob("*"), '\n')
      if myCol =~ '\.vim'
         let mycol = substitute(myCol, '\.vim', '', '')
         exec "colorscheme " . mycol
         exec "redraw!"
         echo "colorscheme = ". myCol
         sleep 2
      endif
   endfor
   exec "cd " . currDir
endfunction

1
chamar DisplayColorSchemes ()
Haagenti

8

Se você tiver seu vim compilado +menu, poderá seguir os menus com o :helpde console-menu. A partir daí, você pode navegar Edit.Color\ Schemepara obter a mesma lista que emgvim .

Outro método é usar um script legal ScrollColors que visualiza os esquemas de cores enquanto você rola os esquemas com j/k.


6

Observando o menu.vim do meu sistema (procure 'submenu Color Scheme') e a resposta do @ chappar, criei a seguinte função:

" Returns the list of available color schemes
function! GetColorSchemes()
   return uniq(sort(map(
   \  globpath(&runtimepath, "colors/*.vim", 0, 1),  
   \  'fnamemodify(v:val, ":t:r")'
   \)))
endfunction

Faz o seguinte:

  1. Obtém a lista de scripts de esquema de cores disponíveis em todos os caminhos de tempo de execução (caminho do globo, caminho do tempo de execução)
  2. Mapeia os caminhos de script para seus nomes base (remove os diretórios e a extensão dos pais) (map, fnamemodify)
  3. Classifica e remove duplicatas (uniq, classificar)

Então, para usar a função, faço algo assim:

let s:schemes = GetColorSchemes()
if index(s:schemes, 'solarized') >= 0
   colorscheme solarized
elseif index(s:schemes, 'darkblue') >= 0
   colorscheme darkblue
endif

O que significa que eu prefiro os esquemas 'solarizado' e depois o 'azul escuro'; se nenhum deles estiver disponível, não faça nada.


3

Uma ótima solução e meus agradecimentos a seus colaboradores. Por anos, tenho lutado com um esquema de cores totalmente ruim - usando o SSH no Windows Vista para um sistema Redhat, tipo terminal xterm. O editor apresentaria um plano de fundo preto e cores estranhas para várias palavras-chave. Pior - esse esquema de cores estranho fica no terminal xterm depois de deixar o Vim.

Realmente confuso.

Além disso, o Backspace falhou durante um modo de inserção, o que foi desagradável de lembrar - embora o Delete tenha feito a mesma coisa.

A cura --

  1. No monitor SSH, selecione Editar / Configurações.

    uma. Escolha Configurações / cores do perfil

    b. marque 'ativar cores ANSI'

    c. As cores de texto padrão provavelmente estão OK

  2. Adicione estas linhas a $ HOME / .vimrc:

    colorscheme padrão

    se & term == "xterm"

    defina t_kb = ^ H

    fixdel

    fim se

  3. NOTA: o ^ H DEVE ser digitado como ctrl-V ctrl-H. Parece peculiar, mas isso parece funcionar.


0

Tentar

set wildmenu
set wildmode=list:full
set wildcharm=<C-z>
let mapleader=','
nnoremap <leader>c :colorscheme <C-z><S-Tab>

no seu ~/.vimrc.

As duas primeiras linhas tornam possíveis correspondências aparecerem como listas. Você pode usar um ou ambos.

A quarta linha torna o líder em ,vez do padrão \.

A última linha permite que você simplesmente digite ,c para obter uma lista e um prompt para alterar seu esquema de cores.

A terceira linha efetivamente permite que Tabs apareçam nos principais mapas.

(É claro, todas essas estratégias que aprendi na Internet e, principalmente, SO, muito recentemente.)


0

Outra maneira mais simples é enquanto você estiver editando um arquivo - tabe ~/.vim/colors/ ENTER Abre todos os temas em uma nova guia na janela do vim.

Você pode voltar ao arquivo que estava editando usando - CTRL + W + W ENTER

Nota: Acima funcionará SOMENTE SE VOCÊ tiver um .vim/colorsdiretório dentro do diretório inicial para os atuais $USER (eu tenho mais de 70 temas)

[usuário @ host ~] $ ls -l ~ / .vim / colors | wc -l

72

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.