Bagaimana cara menghindari kata kunci yang signifikan dari file sintaks?

8

Saya menemukan baris ini dalam file sintaks .. tidak berfungsi:

syntax keyword Type Transparent

Saya kira ini ada hubungannya dengan fakta bahwa itu transparentadalah kata kunci yang signifikan untuk Vim.

Apa yang harus saya lakukan untuk menghindarinya, dan agar kata aktual Transparentdiwarnai dalam file saya seperti semua Typekata lain ? Bagaimana jika saya tersandung satu hari accross kata kunci sensitif lainnya seperti keyword, syn, matchdll?

iago-lito mempertimbangkan untuk pergi
sumber

Jawaban:

12

Ini adalah pertanyaan yang menarik dan sepertinya dokumentasi tidak mengatakan apa-apa tentang melarikan diri dari kata-kata khusus itu. Pertama, argumen khusus yang dapat muncul di mana saja tergantung pada perintah sintaks yang Anda gunakan. Dokumentasi menyebutkan argumen spesial di : h: syn-arguments

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

Adapun pertanyaan pertama, tentang bagaimana cara menghindari argumen khusus itu, saya mencoba menggunakan elemen sintaksis kata kunci khusus []dan ini bekerja:

:syntax keyword Type Eins Transparent[] contained[]

Yang []digunakan untuk menunjukkan bagian opsional dari kata kunci, sehingga misalnya Trans[parent]akan menentukan kata kunci yang terpisah Trans, Transp, Transpa, dll dan dengan (ab-) menggunakan ini, saya membuat karya naskah sintaks seperti yang Anda inginkan.

Christian Brabandt
sumber
Dan ini adalah jawaban yang sangat menarik, yang membuat saya belajar sesuatu memecahkan masalah. Cheers :)
iago-lito 'mempertimbangkan meninggalkan