在vim中注释XML
我经常在配置文件中删除和添加XML部分:在vim中注释XML,vim,Vim,我经常在配置文件中删除和添加XML部分: tomcat的server.xml maven的settings.xml 还有很多其他的 是否有一个vim插件/命令可以简化此操作?如果您能找到一个在选择的开头和结尾添加内容的命令,这将是最好的选择 当我评论python代码时,我是这样做的: :2,4s/^/#/g 您可以使用匹配XML标记的组合,如和Perl的搜索和替换中所示 例如,给定以下代码段: <TypeDef name="a"> <ArrayTy
- tomcat的server.xml
- maven的settings.xml
是否有一个vim插件/命令可以简化此操作?如果您能找到一个在选择的开头和结尾添加内容的命令,这将是最好的选择 当我评论python代码时,我是这样做的:
:2,4s/^/#/g
您可以使用匹配XML标记的组合,如和Perl的搜索和替换中所示 例如,给定以下代码段:
<TypeDef name="a">
<ArrayType high="14" low="0">
<UndefType type="node">
</UndefType>
</ArrayType>
</TypeDef>
v
-使您进入视觉模式at
-选择整个XML标记:s/^\(.*\)$/
-用XML的注释分隔符'
围绕每一行
或者,您可以这样删除它:
dat
d
-根据以下移动进行删除at
-与之前一样Vim本身并没有针对所有文件类型的智能注释。你应该为你的评论需求准备一个脚本
我使用的enhcomentify脚本已经存在并维护了很长时间
它似乎可以很好地处理xml,并且对于所使用的任何文件类型,都可以使用相同的键绑定
还有其他的。。特别是书呆子评论员
用于一般标记匹配、删除、插入、环绕等
对于注释标记,很容易使用vim文本对象和一个简单的宏
例如:
进入
vmap ,c <esc>a--><esc>'<i<!--<esc>'>$
您将获得:
<TypeDef name="a">
<!--<ArrayType high="14" low="0">
<UndefType type="node">
</UndefType>
</ArrayType>-->
</TypeDef>
将光标放在评论的末尾,我认为调整可能会有用
我建议加入:
" 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
在处理html或xml文件时仅加载该功能。我喜欢它的简单性。易于添加其他语言,但似乎支持大多数开箱即用的语言。100行以下的代码
gcc
注释当前行,或选择要注释的文本并点击gc
。超级简单。谢谢你的回答,它确实为我指明了正确的方向。但是我该如何将“”附加到最后一个?vim宏使这变得很容易,通过使用与视觉选择相关的“<和]”标记,或者使用“o”将光标从视觉选择的一端移动到另一端,您的更新非常有洞察力。然后,我可以使用vat:s/-->//删除注释。谢谢。+1提供dat
信息。如果您演示如何将此添加到热键中,应该会得到更多。@MerlynMorgan Graham您的意思是:nmap dt dat
Enhcommitify似乎已经死了(上次更新于2008年),但NERD Commenter仍在积极开发中,对我来说工作得很好。@luator这个答案确实很旧。我现在使用vim评论。“超级简单”是一个轻描淡写的说法,如果你已经设置了捆绑包。我希望更多的人找到这个。
vat,c
<TypeDef name="a">
<!--<ArrayType high="14" low="0">
<UndefType type="node">
</UndefType>
</ArrayType>-->
</TypeDef>
" 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
au Filetype html,xml source ~/.vim/scripts/wrapwithcomment.vim