ChatGPT解决这个技术问题 Extra ChatGPT

在 Sublime Text 2 中将默认语法设置为不同的文件类型

如何在 Sublime Text 2 中为某个文件扩展名设置默认文件类型?具体来说,我希望 *.cfg 文件默认具有 Ini 语法突出显示,但我似乎无法弄清楚如何创建此自定义设置。


C
Colin R

在当前版本的 Sublime Text 2 (Build: 2139) 中,您可以使用菜单栏中的选项设置具有特定文件扩展名的所有文件的语法。打开具有您要为其设置默认扩展名的文件并浏览以下菜单:View -> Syntax -> Open all with current extension as... ->[your syntax choice]

2012-06-28 更新: 最近的 Sublime Text 2 版本(至少从 Build 2181 开始)允许通过单击窗口右下角的当前语法类型来设置语法。这将打开语法选择菜单,菜单顶部带有 Open all with current extension as... 选项。

2016-04-19 更新:截至目前,这也适用于 Sublime Text 3。


您尝试过 Open all with current extension as... 还是只是通过 Syntax 菜单中的选项来设置语法?
确认的。您需要重新启动 Sublime 才能使更改生效。此外,这不会更改“活动”文件 - 您可以通过查看右下角它选择的语法来判断。不过重启可以解决。
这可以在每个项目的基础上完成吗?例如,对于一个项目,我可能需要 .html 文件的 Mako 语法;而另一个可能使用另一种语法。
这仍然是 ST3 中使用的方法(从 build 3010 开始)。似乎不需要重新启动,所有带有扩展名的活动文件都会自动更新。
@ziyuang - 确保您在打开的文件中的某处有光标。
k
kamleshpal

转到 Packages/User,创建(或编辑)一个以您要在其中添加扩展名的语法命名的 .sublime-settings 文件,在您的情况下为 Ini.sublime-settings,然后在其中编写如下内容:

{
    "extensions":["cfg"]
}

然后重启 Sublime Text


注意您要使用的语法区分大小写(例如 CSS 用于 css),这将覆盖通过 UI 进行的设置(请参阅@Colin 的帖子)
@Elland 我opened an issue解决这个问题。
我发现使用 sublime text 2/3 更容易打开文件,然后选择要使用的语法。然后单击首选项-> 设置- 更多-> 特定语法- 用户。它将为您创建该文件。只需将上面的代码粘贴进去,保存并重新启动。
使用这种方式是因为我能够通过 UI 删除覆盖我的设置的设置文件
有没有办法为特定项目配置它?
A
Arsen Khachaturyan

在 ST2 中,您可以安装一个名为 Default FileType 的包,它就是这样做的。

更多信息here


This package sets the default file type of new files to be either the same as the current file, or a predefined default. 正是我想要的!谢谢
在 ST3 中,它也有效!只需要一些手动工作(将 DefaultFileType 保存在 ST3 用户路径中。
M
Mr Lister

您可以根据文件的内容打开语法高亮。

例如,我的 Makefiles 无论其扩展名如何,第一行如下:

#-*-Makefile-*- vim:syntax=make

这是其他编辑器(例如 vim)的典型做法。

但是,要使其正常工作,您需要修改 Makefile.tmLanguage 文件。

在以下位置找到文件(适用于 Ubuntu 中的 Sublime Text 3):/opt/sublime_text/Packages/Makefile.sublime-package

请注意,这实际上是一个 zip 文件。复制它,最后用 .zip 重命名,然后从中提取 Makefile.tmLanguage 文件。

通过在“fileTypes”部分之后添加“firstLineMatch”键和字符串来编辑新的 Makefile.tmLanguage。在下面的示例中,最后两行是新的(应该由您添加)。 部分包含正则表达式,它将启用与第一行匹配的文件的语法突出显示。这个表达式识别两种模式:“-*-Makefile-*-”和“vim:syntax=make”。 ... fileTypes GNUmakefile makefile Makefile OCamlMakefile make firstLineMatch ^#\s*-\*-Makefile-\*-|^#.*\s*vim:syntax=make将修改后的 Makefile.tmLanguage 放到用户设置目录:~/.config/sublime-text-3/Packages/User/Makefile.tmLanguage

所有匹配第一行规则的文件都应该在打开时打开语法突出显示。


这很有帮助。很高兴知道这是可能的,但是为每个可能包含这种模式的文件类型编辑每个 .sublime-package 文件是不切实际的。因此,我可能不会使用此功能。
A
Arc

对我来说最好的解决方案是使用 ApplySyntax package

步骤如下:

通过 Package Control CTRL + SHIFT + P 安装包并输入 ApplySyntax: Browse Syntaxes。在此处找到您想要的语法并注意显示的确切行,例如,我希望从 Markdown 编辑包中将其设置为 Markdown,所以对我来说,该行是 MarkdownEditing/syntaxes/Markdown。 CTRL + SHIFT + P 并输入 ApplySyntax: Settings。在 "new_file_syntax": "XYZ" 行上,输入步骤 2 中的行。

有关更多文档,请参阅 here

我发现它比 DefaultFileType package 工作得更好,因为它不仅限于通过按 CTRL + N 创建的新文件和捕获通过单击打开选项卡右侧的空白区域打开的新选项卡。

我希望在提出原始问题 11 年后对某人有用。 😅