VIM: Mettez en surbrillance + = avec un arrière-plan


0

J'ai récemment codé en PHP, qui est faiblement typé, donc des entiers sont ajoutés avec += mais les chaînes sont concaténées avec .=. Cela signifie que je finis par utiliser += où je ne devrais pas et PHP convertit alors mes chaînes en entiers!

Est-il possible de mettre en évidence +=, que je n'utilise presque jamais, avec un fond ou autre chose très distinctif?

Merci.


Réponses:


2

Voici une façon de le faire:

Créez un php.vim dans votre répertoire after / syntax comme ceci:

scriptencoding utf-8

setlocal nolist

syn match phpPlusEq '+='

hi link phpPlusEq       Error

" vim: ts=8 sw=2

La prochaine fois que vous éditez un fichier php, le signe + = doit être mis en évidence comme une erreur.


Je vous remercie. J'ai créé le fichier ~/.vim/after/syntax/php.vim et rempli avec le contenu que vous mentionnez. cependant, += n'est pas mis en évidence dans le fichier ~/text.php. Ceci est sur Kubuntu Linux 11.10, VIM 7.3. Une idée pourquoi? Je vois cependant que c'est la bonne solution, alors je la marque déjà comme acceptée même si cela ne fonctionne pas pour moi pour le moment.
dotancohen

1
@danco Faites: les noms de script dans vim et vous devriez voir ~ / .vim / after / syntax / php.vim vers la fin de la liste.
lang2

Merci. Il on dirait que j'ai le texte au bon endroit mais tout de même, ce fichier n'est pas sur la liste . Des raisons pour lesquelles cela pourrait être?
dotancohen

Je ne sais pas vraiment mais je soupçonne le kunbuntu. Pouvez-vous faire: mettre en RTP? et vérifier votre chemin de temps d'exécution?
lang2

Merci. ~/.vim/after/ est dans le chemin d'exécution, mais ~/.vim/after/syntax n'est pas. Notez que ~/.vim/after/plugin n'est pas sur la liste non plus, mais mon ~/.vim/after/plugin/matchparen.vim Le fichier fonctionne comme prévu. Étrange.
dotancohen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.