La risposta ad entrambe le domande è no (non conosco alcun convertitore e non ho un file di evidenziazione della sintassi q), ma la sintassi Notepad ++ che evidenzia il formato XML sembra estremamente semplice. Non ho la "Q" a portata di mano, ma ho dato un'occhiata a uno di quelli da website e la traduzione sembra piuttosto banale. In tal caso, si potrebbe fare la maggior parte del lavoro con:
" Remove all the lines that aren't lists of keywords
" (there doesn't seem to be anything much more complicated
" than that in the definition file)
:g!/<Keywords name=/d
" Convert the lines (fairly poor XML parsing here!)
:%s/\s*<Keywords name="\([^"]\+\)">\([[:alpha:]_ ]\{-}\)<\/Keywords>/syn keyword \1 \2/
Questo genera un sacco di linee che sembrano:
syn keyword Words1 case then do while
Dovrete modificare la classe di sintassi (Words1 in questo caso) per essere qualcosa che verrà evidenziato in Vim (o sincronizzarlo in link con qualcosa che verrà evidenziato in Vim).
Probabilmente si potrebbe quindi trattare con i simboli con una regexp, ma potrebbe essere più facile da fare solo loro a mano, in modo da convertire:
<Keywords name="Operators">- ! " # $ & * , . ; ? @ \^{ | } ~ + < = ></Keywords>
in:
syn match Operators /\<[-!"#$&*,.;[email protected]\\^{|}~+<=>]/
(questo è \<
per contrassegnare un limite di parole, seguito da una classe di caratteri [..]
con tutti i simboli in esso contenuti).
Si sarebbe quindi solo bisogno di aggiungere:
if exists("b:current_syntax")
finish
endif
all'inizio e:
let b:current_syntax = "q"
alla fine.
Ovviamente, questo non ti porta fino in fondo, ma spero che ti dia un sacco di quello che ti serve per ottenere il file di sintassi che desideri. C'è abbondanza di aiuto disponibile in:
:help syntax
e osservando gli esempi nella directory di sintassi della cartella di runtime.
Buona fortuna!
Grazie per i suggerimenti! Questo dovrebbe rendere più semplice il processo di creazione di un file Vim, non sembra molto complicato .. Sono solo pigro. –