É possível que o Vim produza cores ANSI a partir do terminal, sem um esquema de cores?

7

Muitos emuladores de terminal permitem definir cores:

insira a descrição da imagem aqui

Em vez de tentar aproximar (e duplicar!) O mesmo tema em um esquema de cores do Vim, existe uma maneira de dizer ao terminal Vim para emitir códigos de escape ANSI para as cores que eu já defini ("vermelho", "verde", "amarelo" "," magenta "etc.)?

Se não, por que não?

Adrian Schaedle
fonte

Respostas:

7

Supondo que o emulador de terminal não pretenda suportar 256 cores ( $ echo $TERMdeve gerar uma string que não contém 256color) e você não mentiu para o Vim sobre isso ( :echo &t_Codeve produzir 8ou 16), o Vim deve respeitar as cores "ANSI" definidas em seu emulador de terminal.

Todos os esquemas de cores internos usam essas cores "ANSI" - por nome ou por número - por padrão, mas muitos esquemas de cores de terceiros são projetados especificamente para a GUI e / ou para emuladores de terminal de 256 cores. Esses esquemas de cores geralmente não funcionam (ou muito mal) nas configurações de 8/16 cores.

Portanto, você precisará experimentar os esquemas de cores internos e de terceiros para encontrar a combinação "perfeita".

Você pode procurar as dicas abaixo para saber se um esquema de cores funcionará na sua configuração:

ctermfg=red    use of names means it works in 8/16 color terminals
ctermfg=7      use of numbers below 16 means it works in 8/16 color terminals
ctermfg=123    use of numbers between 16 and 255 means it works in 256 color terminals
guifg=...      means it works in GUI Vim
romainl
fonte