Vim中的模式感知XML编辑

时间:2008-11-26 23:07:51

标签: xml vim xsd

在IntelliJ IDEA中编辑XML文件时,如果文档引用架构,IDEA将获取架构并使用该信息进行自动完成。它知道哪些标签在哪些上下文中有效,所以当你按CTRL空格时,它只建议那些标签。它还会根据架构突出显示任何无效的标签。

有人知道提供类似功能的Vim扩展吗?

5 个答案:

答案 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