Estou procurando uma solução possível para aplicar duas cores de plano de fundo diferentes dentro de um único buffer vim, dependendo do contexto, como neste exemplo de texto sublime .
Um caso de uso disso é trechos de código de cores dentro dos arquivos de marcação de maneira diferente, para que eles se destaquem mais.
No entanto, eu nunca vi um exemplo com uma configuração como essa.
Isso é possível no vim?
colorscheme
Karolis Koncevičius
fonte
fonte
Respostas:
Porque eu estava curioso para saber como isso funcionaria, eu hackeei algo que funciona.
Como mencionado nos comentários da resposta anterior, a única maneira de fazer isso é preencher as regiões com espaços; que é exatamente o que fazemos; antes de escrever, removemos esses espaços, para que você não incomode mais ninguém.
Observe que este exemplo é muito específico para o tipo de arquivo de remarcação!
Efeitos colaterais :
'list'
está ativadoPrimeiro, você precisa adicionar isso ao seu
~/.vim/after/syntax/markdown.vim
:Você pode ajustar as cores ao seu gosto, é claro ;-)
Em seguida, adicione isso ao seu vimrc:
Não vou explicar o código linha por linha, os comentários devem deixar clara a essência geral ;-)
fonte
Certamente é possível usar uma cor de fundo diferente para elementos destacados pela sintaxe. Apenas defina as cores
guibg
ectermbg
em seuhilight
comando. O primeiro define a cor de fundo do GUI Vim e o segundo do terminal Vim.No entanto, essa limitação é importante: ele só pode definir as cores de plano de fundo para os caracteres que realmente existem no arquivo.
O resultado disso é que a cor do plano de fundo não pode se estender além do final do texto em uma linha até a borda da janela; portanto, a coloração dos blocos de código mostrados no seu exemplo não é possível:
Você também pode alterar a cor de fundo de linhas inteiras usando o recurso Assinar. (Ver
linehl
em:help sign.txt
)No entanto, observe que:
Para fazer isso, é necessário escrever código para colocar sinais em cada linha que precisa ser colorida e mantê-los atualizados à medida que o conteúdo do arquivo for alterado,
Por padrão, ao colocar um sinal, a coluna do sinal será exibida à esquerda da janela. É possível alterar a coloração da coluna de sinal com o
SignColumn
grupo de destaque e nas versões mais recentes do Vim ele pode ser removido completamente. (Veja:help 'signcolumn'
.)Por exemplo, para adaptar a solução Carpetsmoker para usar o mecanismo de sinalização (mais robusto), você pode fazer o seguinte:
Isso simplifica um pouco o código e possui menos advertências do que a versão do Carpetsmoker.
O plugin DynamicSigns de @ChristianBrabandt facilita o uso do recurso Assinar para esse fim: ele descreve como usá-lo nesta resposta .
fonte
guibg
só funciona para o gvim, está certo?ctermbg
, conforme indicado.