Cor de fundo diferente para vários tipos de arquivos no vim


10

É possível ter cores de fundo diferentes no vim (ou seja, uma luz, uma escuridão) ao lidar com arquivos com vários tipos de arquivos (ou seja :set ft=html.php). No código PHP com HTML incorporado, pode ser difícil ver uma única instrução PHP entre dezenas de linhas HTML, veja abaixo. Vou me contentar com qualquer coisa, seja de cor bg diferente, um marcador na margem, uma segunda margem esquerda (um plugin vim faz isso para marcas), talvez destacando a <?phptag por exemplo (embora isso seja menos do que o ideal)

PHP em código HTML

EDIT: Eu não acho que isso é possível no nível da sintaxe, pois a sintaxe parece usar um número limitado de elementos (String, Function, Identifier ...). Isso sem dúvida permite a fácil integração com os esquemas de cores. SyntaxAttr é um bom plugin para demonstrar isso. Coloque-o sobre qualquer parte do código e ele informará a qual grupo de sintaxe ele pertence.


Possivelmente, você pode usar a mesma solução deste post stackoverflow.com/questions/4167425/…, onde eles criam um esquema de cores personalizado que destaca qualquer sequência iniciada com sql_.

1
Vou ver se consigo detectar regiões entre ?>e <?como não PHP.
puk

Respostas:


1

Outra solução potencial é personalizar seu arquivo de esquema de cores favorito para verificar a configuração de 'fundo'. Muitos definem a configuração 'background' de uma maneira ou de outra, mas isso pode ser verificado para alterar quais seriam as cores de destaque.

Exemplo de esquema de cores


" Search
if &background=="dark"
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
else " background is light
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
fi


Existe uma maneira de verificar o idioma de uma palavra / caractere? ou seja, se é HTML v PHP?
PUK

Meio que depende. Você pode verificar o tipo de destaque para uma palavra específica. E se for distinguível entre HTML e PHP, você saberia. Mas acho que é o melhor que você terá sem muito trabalho extra. Use algo como o seguinte para obter o tipo de destaque:: echo synIDattr (synID (linha (), col (), 1), "nome "". "".")
pottsdl
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.