在IntelliJ IDEA中编辑XML文件时,如果文档引用架构,IDEA将获取架构并使用该信息进行自动完成。它知道哪些标签在哪些上下文中有效,所以当你按CTRL空格时,它只建议那些标签。它还会根据架构突出显示任何无效的标签。
有人知道提供类似功能的Vim扩展吗?
答案 0 :(得分:15)
VIM 7+支持默认情况下没有任何插件,它可以加载XML定义,还有转换器用于DTD和SchemaNG:
http://vimdoc.sourceforge.net/htmldoc/insert.html#ft-xml-omni
例如,我的Vim 7.3已经有了XHTML的定义:
$ rpm -ql vim vim-common | grep xml
/usr/share/vim/vim73/autoload/xml
/usr/share/vim/vim73/autoload/xml/html32.vim
/usr/share/vim/vim73/autoload/xml/html401f.vim
/usr/share/vim/vim73/autoload/xml/html401s.vim
/usr/share/vim/vim73/autoload/xml/html401t.vim
/usr/share/vim/vim73/autoload/xml/html40f.vim
/usr/share/vim/vim73/autoload/xml/html40s.vim
/usr/share/vim/vim73/autoload/xml/html40t.vim
/usr/share/vim/vim73/autoload/xml/xhtml10f.vim
/usr/share/vim/vim73/autoload/xml/xhtml10s.vim
/usr/share/vim/vim73/autoload/xml/xhtml10t.vim
/usr/share/vim/vim73/autoload/xml/xhtml11.vim
/usr/share/vim/vim73/autoload/xml/xsd.vim
/usr/share/vim/vim73/autoload/xml/xsl.vim
/usr/share/vim/vim73/autoload/xmlcomplete.vim
/usr/share/vim/vim73/compiler/xmllint.vim
/usr/share/vim/vim73/compiler/xmlwf.vim
/usr/share/vim/vim73/ftplugin/xml.vim
/usr/share/vim/vim73/indent/xml.vim
/usr/share/vim/vim73/syntax/docbkxml.vim
/usr/share/vim/vim73/syntax/xml.vim
尝试一下,这是值得的。在上面的链接中清楚地记录了所有内容,我不会在此处复制粘贴。
答案 1 :(得分:6)
我见过的最接近Vim的是XML Completion脚本。
它包含DocBook 4的XML定义文件。[234],XSL FO 1.0,XSLT 1.0,Relax NG 1.0,XML Schemas 1.0,SVG 1.1,XHTML 1.1,XInclude 1.0和OpenOffice 1.0 XML格式。
答案 2 :(得分:3)
阅读本文档:http://www.pinkjuice.com/howto/vimxml/ 非常有用。
答案 3 :(得分:1)
我已经围绕这个主题收集了一些材料,你可以在github上找到它。 https://github.com/tbazant/xml-vim 它写在docbook中,将其转换为PDF并享受!
答案 4 :(得分:0)
参考:http://ricardianambivalence.com/2013/02/17/xml-validation-in-vim/
在bar.xml
打开后,您可以轻松验证foo.xsd
。首先,保存更改,然后单击:
并输入以下内容(它是终端命令的管道)。
:! xmllint --noout --schema foo.xsd bar.xml