本页内容

编辑 MIME 类型

Qt Creator 会根据文件的MIME 类型来确定文件类型,因此可以:

  • 选择打开文件所需的模式和编辑器。例如,Qt Creator 会使用C++编辑器打开C++源文件和头文件,而.ui 则会使用Qt Widgets Designer打开基于Qt Widgets的UI文件。
  • 提供代码编辑服务,例如代码格式化和语法高亮。
  • 将文件提交给相应的语言服务器。
  • “项目”中将文件分类为头文件和源文件。

对于某些 MIME 类型,您可以更改Qt Creator 默认用于打开该类型文件的编辑器。

为了识别文件的 MIME 类型,Qt Creator 会使用模式匹配和内容匹配。首先,Qt Creator 会检查文件名,看它是否与任何 MIME 类型指定的模式相匹配。如果找不到匹配项,它会检查文件内容中是否包含为该文件指定的魔术头。

Qt Creator 该程序会在文件中搜索指定范围内的值,并考虑魔术头(magic header)的优先级。如果您指定了较宽的搜索范围,在Qt Creator 中打开文件可能会花费较长时间。因此,您应使用推荐的魔术头范围和优先级值。

如果您的文件与预定义的 MIME 类型不匹配,您可以编辑 MIME 类型以添加文件名扩展名和魔术头。但您无法添加新的 MIME 类型。

更改预定义的 MIME 类型

要向 MIME 类型添加文件名扩展名:

  1. 转至Preferences >Environment >MIME Types

    “环境”首选项中的“MIME 类型”选项卡

  2. 在“MIME Type ”中,选择一种 MIME 类型。
  3. 在“Handler ”中,双击编辑器名称以显示上下文菜单,您可以在其中选择另一个编辑器作为该文件的默认打开方式。只有当存在其他合适的编辑器时,该菜单才会显示。选择“System Editor ”可将系统默认编辑器设为此类型文件的默认打开方式。
  4. Patterns 中,添加您希望识别为具有此MIME类型的文件所对应的文件名扩展名。

更改文件类型的默认编辑器

即使某个 MIME 类型未列出替代编辑器,您仍然可以更改用于打开特定类型文件的编辑器。请从当前 MIME 类型中移除该文件名扩展名,并将其添加到由您想要使用的编辑器处理的 MIME 类型中。

例如,若要用文本编辑器编辑 Linux 内核设备树源文件(.dts),请从 MIME 类型audio/vnd.dts (该类型代表数字环绕声文件格式)中删除模式*.dts ,并将其添加到 MIME 类型text/plain 中。

使用“Filter ”字段查找当前带有文件名扩展名的 MIME 类型。

添加魔术头

魔术标头可以具有以下类型的值:字符串、主机、大端序、小端序和字节。Qt Creator 会根据《共享 MIME 信息数据库规范来解释这些值。

  1. 在“MIME Types ”中,选择“Add ”以添加魔术头。

    “添加魔术标头”对话框

  2. Value 中,指定文件中出现的文本字符串或字节。
  3. 在“Type ”中,选择值的类型。
  4. Mask 中,指定在将文件中的值与指定值进行比较之前,使用AND运算符与之组合的数字。对于数值类型,您可以指定任意数字作为掩码,而字符串的掩码必须为十六进制,并以0x开头。

    注意:更改 范围和优先级可能会导致在Qt Creator 中打开文件时出现问题。

  5. 选择“OK ”以返回“MIME Types ”选项卡。

重置 MIME 类型

要撤销对 MIME 类型定义所做的更改,请在“MIME Types ”中选择“Reset MIME Types ”。

若要撤销对默认编辑器的更改,请选择“Reset Handlers ”。

注意:如果在 还原更改后选择“Apply ”,您将永久丢失所有自定义模式和魔术头。这些内容将在下次启动Qt Creator 时被移除。

另请参阅 Clang 代码模型 和管理语言服务器

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.