J'édite beaucoup de code PHP avec Vim, et j'ai rencontré un problème avec quelques macros dans mon .vimrc
.
J'utilise actuellement ces deux macros pour commenter / décommenter en style C
"c-style (//) comment (press the [.] key)
au FileType php vnoremap . :s/^\(\s*\)\(.\+\)$/\1\/\/\2/<CR>:noh<CR>gv
"c-style (//) uncomment (press the [,] key)
au FileType php vnoremap , :s/^\(\s*\)\/\//\1/<CR>:noh<CR>gv
Et ces deux pour commenter / décommenter dans le style HTML
"html-style (<!-- -->) comment (press the [.] key)
au FileType html vnoremap . :s/^\(\s*\)\(.\+\)$/\1<!-- \2 -->/g<CR>:noh<CR>gv
"html-style (<!-- -->) uncomment (press the [,] key)
au FileType html vnoremap , :s/^\(\s*\)<!-- \(.*\) -->/\1\2/g<CR>:noh<CR>gv
Ces macros fonctionnent bien lorsqu'elles sont appliquées à leur type de fichier prévu, mais comme il y a souvent du HTML incorporé dans un fichier PHP, le style de commentaire PHP est inutile.
Existe-t-il un moyen pour Vim de détecter s'il fonctionne sur un morceau de code HTML dans un fichier PHP, puis d'appliquer le comportement de commentaire correct?
Edit: Je sais que je peux définir manuellement le type de fichier, et qu'il existe des plugins disponibles pour cela, je cherchais à en savoir plus sur l'écriture de meilleures macros.