Como escapar de palavras-chave significativas de arquivos de sintaxe?


8

Eu vim através desta linha em um arquivo de sintaxe .. não funciona:

syntax keyword Type Transparent

Acho que isso tem algo a ver com o fato de transparentser uma palavra-chave significativa para o Vim.

O que devo fazer para evitar isso e obter a palavra real Transparentcolorida em meus arquivos como todas as outras Typepalavras? Mas se eu tropeçar um dia accross outras palavras-chave delicados como keyword, syn, matchetc?

Respostas:


12

Essa é uma pergunta interessante e parece que a documentação não diz nada sobre como escapar dessas palavras especiais. Primeiro, argumentos especiais que podem aparecer em qualquer lugar dependem do comando de sintaxe que você usa. A documentação menciona esses argumentos especiais em : h: syn-argumentos

The :syntax commands that define syntax items take a number of arguments.
The common ones are explained here.  The arguments may be given in any
order and may be mixed with patterns.

Not all commands accept all arguments.  This table shows which arguments
can not be used for all commands:
                                                        E395
                    contains  oneline   fold  display  extend concealends
:syntax keyword          -       -       -       -       -      -
:syntax match           yes      -      yes     yes     yes     -
:syntax region          yes     yes     yes     yes     yes    yes

These arguments can be used for all three commands:
    conceal
    cchar
    contained
    containedin
    nextgroup
    transparent
    skipwhite
    skipnl
    skipempty

Quanto à primeira pergunta, sobre como escapar desses argumentos especiais, tentei usar o elemento de sintaxe especial sintaxe-palavra-chave []e isso funciona:

:syntax keyword Type Eins Transparent[] contained[]

A []é utilizado para designar uma parte opcional de uma palavra-chave, de modo que, por exemplo Trans[parent]definiria as palavras-chave separadas Trans, Transp, Transpa, etc e por (AB) utilizando este, eu fiz o trabalho de script sintaxe como você queria.


E esta é uma resposta muito interessante, que me fez aprender que algo resolve o problema. Cheers :)
iago-lito 'considerando deixar
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.