Edito una gran cantidad de código PHP con Vim, y me he encontrado con un problema con algunas macros en mi .vimrc
.
Actualmente uso estas dos macros para comentar / descomentar en 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
Y estos dos para comentar / descomentar en 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
Estas macros funcionan bien cuando se aplican a su tipo de archivo deseado, pero dado que a menudo hay HTML incrustado dentro de un archivo PHP, el estilo de comentario PHP es inútil.
¿Hay alguna forma de que Vim detecte si está trabajando en un fragmento de código HTML dentro de un archivo PHP y luego aplique el comportamiento de comentario correcto?
Editar: Sé que puedo configurar manualmente el tipo de archivo, y que hay complementos disponibles para esto, estaba buscando aprender más sobre cómo escribir mejores macros.