如何在Visual Studio Code中设置XML文件F12跳转至定义位置
在VS Code中实现XML RefId跳转到定义的方法
方法一:自定义XML Schema(推荐)
VS Code对XML的跳转支持基于Schema约束,你可以自己写个简单的Schema关联id和RefId:
- 新建一个
foo.xsd文件,粘贴以下内容:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="foo"> <xs:complexType> <xs:sequence> <!-- 可根据你实际的XML结构调整内部元素定义 --> <xs:any minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="optional"/> <xs:attribute name="RefId" type="xs:string" use="optional"/> <!-- 建立RefId和id的引用关联 --> <xs:key name="fooId"> <xs:selector xpath=".//foo"/> <xs:field xpath="@id"/> </xs:key> <xs:keyref name="fooRefId" refer="fooId"> <xs:selector xpath=".//foo"/> <xs:field xpath="@RefId"/> </xs:keyref> </xs:complexType> </xs:element> </xs:schema>
- 在你的目标XML文件头部加上Schema引用:
<?xml version="1.0" encoding="UTF-8"?> <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="foo.xsd"> <!-- 你的原有XML内容 --> </foo>
- 保存所有文件后,选中
RefId="bar"里的bar按F12,就能直接跳转到对应id="bar"的foo标签位置。
方法二:正则跳转插件(临时方案)
如果不想写Schema,用插件加正则也能实现:
- 安装
Regex Go to Definition插件 - 打开VS Code设置(Ctrl+,),找到该插件的规则配置项,添加一条规则:
- 匹配模式:
RefId="([^"]+)" - 定义模式:
id="\1" - 应用文件类型:
xml
- 匹配模式:
- 重启VS Code后,选中RefId的值按F12就能跳转到对应的id定义处。
内容的提问来源于stack exchange,提问作者SerFabry
相关产品推荐
相关产品推荐

