2010-11-29 6 views
3

Comment étendre/modifier la surbrillance vim pour tous les types de fichiers à la fois?étendre/modifier la surbrillance vim pour tous les types de fichiers à la fois?

J'ai certains modèles relativement simples que j'aimerais mettre en évidence différemment, cela peut se produire dans n'importe quel type de fichier. Donc plutôt que d'ajouter quelque chose comme ci-dessous à chaque type de fichier imaginable que je pourrais utiliser (~/.vim/syntax/python.vim, .../css.vim, .../html.vim, ...) est-il Façon je peux le définir une fois pour tous les types de fichiers?

syn match SpecialComment "@[@\-+].*" containedin=Comment 
syn match Comment  "\* .*$"hs=s+1 containedin=SpecialComment 

mise à jour:

Comme suggéré que je sauvé mes changements ~/.vim/after/filetype.vim, avec le résultat que cela fonctionne dans Cream, mais pas de stock Gvim vim. Le code réel J'utilise here, un fichier python échantillon pour tester contre here, et le résultat souhaité:

what the pastebin filetypes.vim looks like in Cream

Répondre

3

Vous pourriez essayer de mettre ces deux lignes ~/.vim/after/filetype.vim. Cela devrait être obtenu après l'un des fichiers de syntaxe de niveau supérieur. Ce n'est peut-être pas l'endroit «correct» pour le dire, mais ça devrait marcher. Le fichier filetype.vim semble provenir AVANT les fichiers de syntaxe, il est donc remplacé par le fichier de syntaxe par défaut. Par conséquent, je vous recommande de créer un nouveau fichier appelé quelque chose comme:.

~/.vim/after/common_syntax.vim 

avec les lignes de souligner que vous êtes intéressé par Ensuite, ajoutez ceci à ~/.vim/after/filetype.vim:

if !exists("after_autocmds_loaded") 
    let after_autocmds_loaded = 1 
    au BufNewFile,BufRead * source ~/.vim/after/common_syntax.vim 
endif 

Cela entraînera le fichier à rechercher une fois le fichier lu.

P.S. En réponse au commentaire de votre exemple de code: "pourquoi ne pouvons-nous pas utiliser le groupe plain ol 'comment' au lieu de 'pythoncomment' etc.?", C'est parce que le groupe syntaxique est pythonComment, qui est simplement coloré de la même manière que Commentaire. Si votre syntaxe est suffisamment unique pour ne pas poser de problème, vous pouvez simplement faire containedin=ALL. Si elle est proche, mais pas tout à fait unique, vous pouvez faire containedin=ALLBUT,conflictgroupconflictgroup est le groupe de surbrillance que vous voulez éviter.

+0

merci, ça marche. J'ai besoin de nommer chaque type de commentaire dans la première ligne (pythonComment, cssComment, etc.), encore beaucoup moins de travail que plusieurs fichiers. :) –

+0

correction: ça marche avec Cream-for-vim mais pas pour gvim ou vim proprement dit (sur ma machine: Ubuntu 10.10, gvim 7.2.33). Il doit y avoir un paramètre secondaire nécessaire quelque part. –

+0

J'ai ajouté une autre approche qui devrait fonctionner sur n'importe quel vim. – DrAl

Questions connexes