Eu edito muito código PHP com o Vim e encontrei um problema com algumas macros no meu .vimrc
.
Atualmente, uso essas duas macros para comentar / descomentar no estilo 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
E esses dois para comentar / descomentar no estilo 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
Essas macros funcionam bem quando aplicadas ao tipo de arquivo pretendido, mas como geralmente há HTML incorporado em um arquivo PHP, o estilo de comentários do PHP é inútil.
Existe uma maneira de o Vim detectar se está funcionando em um pedaço de código HTML dentro de um arquivo PHP e aplicar o comportamento correto de comentários?
Edit: Eu sei que posso definir manualmente o tipo de arquivo e que existem plugins disponíveis para isso. Eu estava procurando aprender mais sobre como escrever macros melhores.