有哪些最佳快捷方式或插件可以注释HTML / XML元素?
还需要取消注释。
您可以使用匹配的XML标签的组合,就像在这个问题和Perl的搜索和替换中所看到的一样。
例如,给定以下代码片段:
<TypeDef name="a">
<ArrayType high="14" low="0">
<UndefType type="node">
</UndefType>
</ArrayType>
</TypeDef>
将光标放在开头或结尾的 TypeDef 上,然后输入以下序列:
vat:s/^\(.*\)$/<!-- \1 -->/
v
- 进入可视模式at
- 选择整个XML标签:s/^\(.*\)$/<!-- \1 -->/
- 将每行用'<!-- ... -->'
括起来,这是XML的注释分隔符或者,您也可以像这样删除它:
dat
d
- 根据以下动作删除at
- 如之前所述要删除 id,请使用 d
然后使用 vat:s/-->//
删除注释。
评论代码:vato<ESC>i<!-- <ESC>vatA --><ESC>
vato
Esc
i<!--
Esc
vat
A -->
Esc
注意:您可以使用 I
直接从可视模式插入,它适用于多行代码块,但对于单行元素,它会搞乱缩进。
取消注释:vat<ESC>4xvato<Esc>5X
vat
Esc
4x
vato
5X
您可以将以下行添加到您的 .vimrc(或 neovim 中的 init.vim)中,以重新映射快捷键:
" Comment HTML element
nnoremap <silent> <leader>h :set lazyredraw<cr>mhvato<ESC>i<!-- <ESC>vatA --><ESC>`h:set nolazyredraw<cr>
" Uncomment HTML element
nnoremap <silent> <leader>H :set lazyredraw<cr>mhvat<ESC>4xvato<ESC>5X`h:set nolazyredraw<cr>
警告:
4x
替换为d2f-
和5X
替换为dF!
来避免此问题,但是您会遇到this kind of workaround和同一行中包含-...-或!的其他任何内容的问题。注:
<leader>h
和 <leader>H
为您想要使用的内容。:set lazyredraw
是为了通过不重新绘制屏幕来隐藏中间步骤,:set nolazyredraw
是为了避免可能出现的视觉故障。mh
是为了保存当前光标位置,`h
是为了跳回到该行和列。您可以将 h 替换为任何其他小写字母。提示:使用 :$MYVIMRC 源 应用对 .vimrc(或 init.vim)所做的更改,而无需重新启动 vim。