如何在VIM中注解掉HTML/XML元素?

4sup72z8  于 2023-02-23  发布在  其他
关注(0)|答案(4)|浏览(124)

注解掉HTML/XML元素的最佳快捷方式或插件是什么?
也需要不予置评。

nwnhqdif

nwnhqdif1#

您可以使用匹配的XML标记的组合,如这个问题和Perl的搜索和替换中所示。
例如,给定以下代码片段:

<TypeDef name="a">
  <ArrayType high="14" low="0">
    <UndefType type="node">
    </UndefType>
  </ArrayType>
</TypeDef>

将光标放在开始或结束TypeDef上,然后键入以下序列:

vat:s/^\(.*\)$/<!-- \1 -->/
  1. v-进入可视模式
  2. at-选择整个XML标记
  3. :s/^\(.*\)$/<!-- \1 -->/-用'<!-- ... -->'(XML的注解分隔符)包围每行
    或者,您可以像这样删除它:
dat
  1. d-根据以下移动删除
  2. at-与之前相同
    要删除id,请使用,然后使用vat:s/-->//删除注解
1yjd4xko

1yjd4xko2#

我使用tComment插件,你可以找到here的详细视频教程来安装和使用它。
这个插件非常有用,因为它允许你从命令和输入界面切换评论,你可以使用视觉模式和运动(如gcwgc3w

wxclj1h5

wxclj1h53#

如果使用emmet-vim,则可以选择要注解掉的标记的全部内容,方法是按v a t,然后按Ctrl y /

m528fe3b

m528fe3b4#

备注:vato<ESC>i<!-- <ESC>vatA --><ESC>
1.将光标定位在HTML块内的任意位置。不要定位在嵌套块内,除非你想注解嵌套块。

  1. Go to the opening tagvato
    1.退出可视模式:Esc
    1.衬垫:i<!--
    1.退出插入模式:Esc
    1.转到结束标签:vat
    1.追加:A -->
    1.退出插入模式:Esc
    注意:你可以使用I直接从可视化模式插入,它可以处理多行块,但是对于单行元素,它会弄乱缩进。
    要取消注解:vat<ESC>4xvato<Esc>5X
    1.将光标放在HTML块内的任意位置,不包括结束注解分隔符。
    1.转到结束标签:vat
    1.退出可视模式:x1米11米1x
    1.删除4个字符:4x
    1.转到开始标记vato
    1.删除前5个字符:5X

使用. vimrc或init. vim创建快捷方式

您可以将your .vimrc(或neovim中的init. vim)中的以下行添加到remap快捷方式中:

" 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>
    • 警告:**
  • 如果你试图取消注解一个非注解区域,你需要u ndo,因为它会删除一些字符。你可以通过用d2f-替换4x,用dF!替换5X来避免这种情况,但是这样你会遇到这种解决方法的问题,以及同一行中包含-... -或!的任何其他问题。
  • 如果要注解掉的元素的标记之间已经有注解,则需要先取消注解。

注:

  • <leader>h<leader>H更改为您要使用的值。
  • :set lazyredrawhide intermediate steps,不重绘屏幕,:set nolazyredraw是为了避免之后可能出现的视觉故障。
  • mh用于保存当前光标位置,``h`用于跳回到该行和列。您可以将h替换为any other lower case letter

提示:使用:source $MYVIMRC将更改应用到. vimrc(或init.vim),而不必重新启动vim。

相关问题