23

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

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

4

3 回答 3

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

试试看,值得。上面的链接下都清楚地记录了所有内容,我不会在这里复制粘贴。

于 2012-08-20T11:24:52.173 回答
6

我见过的最接近 Vim 的是XML Completion脚本。

它包含 DocBook 4.[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 格式的 XML 定义文件。

于 2008-11-27T03:25:31.557 回答
1

参考:http ://ricardianambivalence.com/2013/02/17/xml-validation-in-vim/

通过bar.xml打开,您可以轻松地针对foo.xsd. 首先,保存您的更改,然后点击:并输入以下内容(它是终端命令的管道)。

:! xmllint --noout --schema foo.xsd bar.xml
于 2013-09-05T07:47:00.173 回答