Por exemplo, se eu quiser pesquisar por \<data\>
, mas eu quero pular todas as entradas que aparecem nos comentários de bloqueio de várias linhas como esta:
/*
* Don't match comments containing the term 'data'
*/
Não posso usar apenas%-lookbehind negativo de largura zero co_de% porque os comentários de bloco nem sempre começam com \(\*.*\)\@<!\<data\>
em cada linha.
Parece ser difícil / impossível excluir correspondências dentro de comentários de bloqueio de várias linhas, mas o realce de sintaxe é capaz de identificar quais seções são comentários e quais não são, portanto, há alguma maneira de vincular a pesquisa de regex com grupos de destaque de sintaxe?
Se for possível vincular-se aos grupos de realce de sintaxe, poderei não apenas excluir os termos que aparecem nos comentários, mas também os termos que aparecem nas strings, como:
output = "Sample data: '"+data+"' ...";
E apenas os dados no meio que estão fora das cotações seriam correspondidos.
Alguém sabe se isso é possível?
EDITAR: A pesquisa de excluir comentários definitivamente é possível, pelo menos. Eu poderia definir uma função de pesquisa () e verificar o grupo de destaque de dentro, como indicado por alguém em este tópico . Porção relevante:
use search() and then check if the syntax highlight group is comment. If synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") is Comment, call search() again.
Mas não acho que isso deixaria o hlsearch destacando os termos corretos.
Tags vim regex syntax-highlighting