Tôi chỉnh sửa rất nhiều mã PHP bằng Vim và tôi đã gặp phải một số lỗi với một số macro .vimrc
.
Tôi hiện đang sử dụng hai macro này để bình luận / không chú ý theo kiểu 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
Và hai điều này để bình luận / không chú ý theo kiểu 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
Các macro này hoạt động tốt khi được áp dụng cho loại tệp dự định của chúng, nhưng vì thường có HTML được nhúng trong tệp PHP, nên kiểu nhận xét PHP là vô dụng.
Có cách nào để Vim phát hiện xem nó có hoạt động trên một đoạn mã HTML bên trong tệp PHP không, và sau đó áp dụng hành vi bình luận chính xác?
Chỉnh sửa: Tôi biết rằng tôi có thể tự đặt filetype theo cách thủ công và có sẵn các plugin cho việc này, tôi đang tìm hiểu thêm về cách viết macro tốt hơn.