VIM: Est-il possible de changer la couleur de ces symboles: ~!%^& *() - + = [] {} ,. <>?: /; comme le fait Visual Studio?Vim: couleur des symboles C++
Répondre
Le Les syntaxes C/C++ sont définies dans la syntaxe/c.vim et la syntaxe/cpp.vim. Si vous utilisez Linux, le répertoire de syntaxe principal se trouve dans/usr/share/vimXX /, où XX est la version (par exemple, la mienne est dans vim72). Je ne connais pas les répertoires d'installation sur d'autres systèmes d'exploitation, mais je suis sûr que vous pouvez le trouver. Je suggère de faire une copie de ceux-ci et de les placer dans votre répertoire vim utilisateur (par exemple, sous Linux, $ HOME/.vim/syntax/c.vim et ainsi de suite). Vous pouvez ensuite ajouter ce que vous voulez. La syntaxe C++ est la source de la syntaxe C, de sorte que tous les symboles que vous voulez mettre en évidence dans les deux devraient aller dans c.vim, et tout ce qui est C++ seulement devrait être dans cpp.vim.
Pour obtenir la coloration syntaxique pour les symboles spécifiques, vous devrez utiliser une instruction de correspondance de syntaxe, quelque chose comme:
syn match cUserSpecialCharacter display "[~!%^&*()-+=[\]{},.<>?:;]"
syn match cUserSpecialCharacter display "/[^*/]"me=e-1
syn match cUserSpecialCharacter display "/$"
Je l'ai appelé cUserSpecialCharacter
depuis cCharacter
et cSpecialCharacter
sont déjà utilisés. Les deuxième et troisième correspondances sont un peu un kludge pour mettre en surbrillance '/'
sans les préfixes de commentaire correspondant, qui surchargeraient alors le commentaire en soulignant et casseraient tout. L'option "display" indique à Vim qu'il n'a pas besoin de chercher cette correspondance si elle ne va pas être affichée - voir :help syn-display
pour une explication si vous le souhaitez!
Une fois que vous avez défini un match de syntaxe, vous pouvez l'associer à un groupe fort, par exemple:
hi def link cUserSpecialCharacter cCharacter
Cela le mettre dans le groupe cCharacter
déjà défini, il va obtenir ce que mettant en évidence qui obtient - dans ce cas, Character
. Vous pouvez voir une belle liste de groupes de surbrillance au bas de c.vim pour des exemples. Si vous voulez vraiment, vous pouvez aussi hardcode un moment fort en faisant quelque chose comme: (. Par exemple arbitraire - ma mise en évidence en cours pour le groupe Error
)
hi cUserSpecialCharacter term=reverse ctermfg=15 ctermbg=1 guifg=#ffffff guibg=#800000
Voir :help hi
pour plus d'informations à ce sujet, ou tout simplement :hi
pour voir le liste de mise en évidence définie - beaucoup d'exemples. Je recommande de ne pas le faire, car cela ne changera pas avec les couleurs.
Oui, vous devez modifier le thème de couleur C dans vimfiles/couleurs/c.vim Je ne connais pas toutes les options du thème, on peut utiliser, mais je suis sûr qu'ils sont documentés sur http://vim.org/
Alors que je suis tout le monde pour lire la documentation, simplement pointer vers elle n'est pas vraiment une réponse ... et vous avez obtenu le mauvais chemin. C'est une coloration syntaxique, pas un schéma de couleurs, donc c'est dans la syntaxe /, pas les couleurs /. En outre, vimfiles est un répertoire add-on/override utilisé pour toutes les versions de Vim; les scripts intégrés sont tous dans le répertoire vimXX. – Cascabel
Le schéma de couleurs est chargé par la syntaxe définit ce qui est quoi, le schéma de couleurs définit la couleur à utiliser, de sorte que la plupart du temps sur les couleurs correspondant à la sélection nomatter quel type de syntaxe est chargé. – ewanm89
- 1. Symboles mathématiques dans vim
- 2. C# Windows - Se débarrasser des symboles étranges
- 3. Modifier la couleur du tilde (~) dans Vim
- 4. Description des symboles de préprocesseur VC++
- 5. Débutant C++ Question - Symboles externes non résolus!
- 6. msbuild, définition des symboles de compilation conditionnelle
- 7. Compact C Pliage dans Vim
- 8. latex et unicode: comment écrire des symboles spéciaux d'autres scripts, ou importer des symboles?
- 9. Suppression des symboles redondants de la chaîne
- 10. Impossible de lire l'erreur des symboles
- 11. Ouverture (c) des tags dans le nouvel onglet (G) Vim
- 12. Réinitialisation des tampons dans Vim
- 13. Couleur Cohérence Vector en C#
- 14. Dans VIM: Comment surligner "variables locales" dans un fichier "C"
- 15. «Réduire» les fentes verticales des fenêtres VIM
- 16. Vim Configurer la numérotation des numéros de ligne
- 17. Indentation Vim pour les templates C++?
- 18. Multiplier les symboles définis
- 19. Restriction des symboles dans une bibliothèque statique Linux
- 20. Impossible de charger des symboles dans GlowCode x64
- 21. Envoi de messages à des objets lors du débogage Objectif-C dans gdb, sans symboles
- 22. Emulation du comportement Windows C-Del/C-Backspace dans VIM
- 23. Schéma de couleurs dans vim
- 24. Paramètres initiaux VIM: changer la couleur d'arrière-plan du numéro de ligne sur le côté gauche?
- 25. VIM: Utilisez Python 2.5 avec vim 7.2
- 26. But de symboles @ en Python?
- 27. Comment "faire" efficacement avec Vim
- 28. Comment définir des accolades «/parenthèses »/crochets de/'opérateurs arithmétiques de couleur surbrillance de la syntaxe dans VIM?
- 29. gcc: Activation des symboles de débogage dans la bibliothèque partagée
- 30. Reconstruire des symboles extraits du binaire Mach-O
Merci Jefromi pour votre réponse complète. J'ai fait le test et ça fonctionne bien. Il y a juste un problème mineur; Le symbole "-" refuse de mettre en évidence. – Tassos
Ma meilleure estimation est que cela fait partie d'une autre définition de syntaxe, qui est prioritaire. Les définitions de la syntaxe C sont assez complexes, donc malheureusement je ne sais pas assez pour indiquer où cela pourrait être. Vous pouvez faire une recherche comme "/ syn * \ (match \ | région \) [^"] * "[^"] * - "pour rechercher des éléments contenant le '-' et voir si vous trouvez quelque chose? – Cascabel