我经常发现自己在配置文件中删除和添加XML部分:
和其他许多人。
是否有一个vim插件/命令来使这个变得简单?
答案 0 :(得分:16)
您可以使用匹配的XML标记的组合,如this question和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
- 与以前一样
答案 1 :(得分:5)
Vim本身并没有对所有文件类型进行智能评论。您应该获得满足评论需求的脚本。
我使用enhcomentify脚本已经存在很长时间了
http://www.vim.org/scripts/script.php?script_id=23
似乎可以很好地执行xml,并且您可以获得与您正在使用的任何文件类型相同的键绑定的优势。
还有其他人......尤其是NERD评论者
答案 2 :(得分:5)
使用surround.vim进行常规标记匹配,删除,插入,环绕等,
对于评论标签,很容易使用vim文本对象&amp;和一个简单的宏
示例:
输入
vmap ,c <esc>a--><esc>'<i<!--<esc>'>$
某处合适,然后将光标放在下面第二行“ArrayType”的大写“A”上(借用上面的Nathan Fellmans示例)
<TypeDef name="a">
<ArrayType high="14" low="0">
<UndefType type="node">
</UndefType>
</ArrayType>
</TypeDef>
然后点击
vat,c
你会得到:
<TypeDef name="a">
<!--<ArrayType high="14" low="0">
<UndefType type="node">
</UndefType>
</ArrayType>-->
</TypeDef>
将光标放在评论的末尾
答案 3 :(得分:5)
我喜欢https://github.com/tpope/vim-commentary的简单性。容易添加其他语言,虽然似乎支持大多数开箱即用。不到100行代码。
gcc
评论当前行,或选择要评论的文字并点击gc
。超级容易。
答案 4 :(得分:2)
我认为适应this vim tip可能会有用。
我建议添加:
" Wrap visual selection in an XML comment
vmap <Leader>c <Esc>:call CommentWrap()<CR>
function! CommentWrap()
normal `>
if &selection == 'exclusive'
exe "normal i-->"
else
exe "normal a-->"
endif
normal `<
exe "normal i<!--"
normal `<
endfunction
到你的.vimrc
然后,在视觉选择激活(V)的情况下,点击\ c(反斜杠然后c)将您的块包裹在<!-- -->
XML样式的注释中。
或者,正如维基上所建议的那样,您可以将代码放在〜/ .vim / scripts / wrapwithcomment.vim中并添加到.vimrc中:
au Filetype html,xml source ~/.vim/scripts/wrapwithcomment.vim
仅在处理html或xml文件时加载该功能。
答案 5 :(得分:1)
如果您找到一个在选择的开头和结尾添加内容的命令,那就最好了。
当我评论python代码时,我这样做:
:2,4s/^/#/g