在vim中注释掉XML

Rob*_*anu 19 vim

我经常发现自己在配置文件中删除和添加XML部分:

  • tomcat的server.xml
  • maven的settings.xml

和许多其他人.

是否有一个vim插件/命令来使这个简单?

Nat*_*man 16

您可以使用匹配的XML标记的组合,这可以在此问题和Perl的搜索和替换中看到.

例如,给定此片段:

<TypeDef name="a">
  <ArrayType high="14" low="0">
    <UndefType type="node">
    </UndefType>
  </ArrayType>
</TypeDef>
Run Code Online (Sandbox Code Playgroud)

将光标放在打开或关闭上,TypeDef然后键入以下序列:

vat:s/^\(.*\)$/<!--\1-->/
Run Code Online (Sandbox Code Playgroud)

v- 使您进入可视模式
at- 选择整个XML标记
:s/^\(.*\)$/<!--\1-->/- 围绕每行'<!--...-->',XML的注释分隔符

或者,您可以像这样删除它:

dat
Run Code Online (Sandbox Code Playgroud)

d- 按照以下动作删除
at- 和以前一样


mic*_*ael 5

Vim本身没有对所有文件类型进行智能注释.您应该获得满足评论需求的脚本.

我使用enhcomentify脚本已经存在很长时间了

http://www.vim.org/scripts/script.php?script_id=23

它似乎很好地做了xml,你可以获得与你正在使用的任何文件类型相同的键绑定的优势.

还有其他人......尤其是NERD评论者

http://www.vim.org/scripts/script_search_results.php?keywords=comment&script_type=&order_by=rating&direction=descending&search=search


sjh*_*sjh 5

使用surround.vim进行常规标记匹配,删除,插入,周围等,

对于注释标签,很容易使用vim文本对象和简单的宏

例:

输入

vmap ,c <esc>a--><esc>'<i<!--<esc>'>$
Run Code Online (Sandbox Code Playgroud)

在某个合适的地方,然后将光标放在下面第二行的"ArrayType"的大写"A"上(借用上面的Nathan Fellmans示例)

<TypeDef name="a">
  <ArrayType high="14" low="0">
    <UndefType type="node">
    </UndefType>
  </ArrayType>
</TypeDef>
Run Code Online (Sandbox Code Playgroud)

然后命中

vat,c
Run Code Online (Sandbox Code Playgroud)

你会得到:

<TypeDef name="a">
  <!--<ArrayType high="14" low="0">
    <UndefType type="node">
    </UndefType>
  </ArrayType>-->
</TypeDef>
Run Code Online (Sandbox Code Playgroud)

将光标放在评论的末尾


Riv*_*tya 5

我喜欢https://github.com/tpope/vim-commentary的简单性.容易添加其他语言,虽然似乎支持大多数开箱即用.不到100行代码.

gcc评论当前行,或选择要评论和点击的文本gc.超级容易.