j'ai une sorte simple d'un fichier de base de données qui consiste seulement d'entrées dans le format suivant
variable = valeur
je veux créer une coloration syntaxique simple pour VIM et lui donner une extension de fichier spécifique.
par exemple, variable partie pourrait être bleu clair, et valeur partie lumière rouge
je l'ai googlé et ai trouvé des choses telles que $vimruntime\syntax\
, syntax set=
, syntax match
et hi
, mais je n'ai pas pu le configurer moi-même
je veux donc un extrait de code Vim très simple qui le réaliserait en faisant correspondre les côtés gauche et droit et en les coloriant séparément.
En supposant que l'extension de votre fichier est *.foo
…
Créez ces fichiers et répertoires s'ils n'existent pas:
$HOME/.vim/ftdetect/foo.vim
$HOME/.vim/syntax/foo.vim
Mettez ce qui suit dans $HOME/.vim/ftdetect/foo.vim
:
autocmd BufRead,BufNewFile *.foo set filetype=foo
Mettez ce qui suit dans $HOME/.vim/syntax/foo.vim
:
syntax match FooKey /^[^=]\+/
syntax match FooValue /[^=]\+$/
Placez les lignes suivantes à la fin de $HOME/.vimrc
(ou au moins après une ligne colorscheme
):
highlight FooKey ctermfg=cyan guifg=#00ffff
highlight FooValue ctermfg=red guifg=#ff0000
Assurez-vous que vous avez la ligne suivante quelque part dans votre ~/.vimrc
:
syntax on
Créez un fichier ~/.vim/syntax/simple.vim
avec le contenu suivant:
" Quit when a syntax file was already loaded.
if exists('b:current_syntax') | finish| endif
syntax match simpleVar "\k\+" nextgroup=simpleAssignment
syntax match simpleAssignment "=" contained nextgroup=simpleValue
syntax match simpleValue ".*" contained
hi def link simpleVar Identifier
hi def link simpleAssignment Statement
hi def link simpleValue String
let b:current_syntax = 'simple'
Cela correspond aux trois éléments de syntaxe et fournit les couleurs par défaut. On ne définit généralement pas les couleurs explicites, mais les liens vers la valeur par défaut mettant en évidence les groupesdéfinis par votre schéma de couleurs. Vous pouvez lister tous via :hi
. Pour peaufiner, lisez :help :syntax
et :help usr_44.txt
et examinez les scripts de syntaxe fournis avec Vim.
Jusqu'ici, vous devez manuellement :set syntax=simple
pour l'activer. Pour faire cela automatiquement, vous devez apprendre à Vim votre nouveau type de fichier .
Créez un fichier ~/.vim/ftdetect/simple.vim
avec le contenu suivant:
autocmd BufNewFile,BufRead *.simple setf simple
Cela suppose que les fichiers puissent être identifiés via le nom de fichier (cp. :help autocmd-patterns
). Vous pouvez également détecter en fonction du chemin (emplacement du fichier) ou même du contenu. :help new-filetype
a des détails.