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

Posted

技术标签:

【中文标题】在 Sublime Text 2 中将默认语法设置为不同的文件类型【英文标题】:Set default syntax to different filetype in Sublime Text 2 【发布时间】:2011-11-26 07:59:28 【问题描述】:

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

【问题讨论】:

【参考方案1】:

在 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 用户路径中。【参考方案2】:

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


    "extensions":["cfg"]

然后重启 Sublime Text

【讨论】:

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

在当前版本的 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 - 确保光标位于打开的文件中。【参考方案4】:

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

例如,我的 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。在下面的示例中,最后两行是新的(应该由您添加)。 <string> 部分包含正则表达式,它将启用与第一行匹配的文件的语法突出显示。此表达式可识别两种模式:“-*-Makefile-*-”和“vim:syntax=make”。

    ...
    <key>fileTypes</key>
    <array>
        <string>GNUmakefile</string>
        <string>makefile</string>
        <string>Makefile</string>
        <string>OCamlMakefile</string>
        <string>make</string>
    </array>
    
    <key>firstLineMatch</key>
    <string>^#\s*-\*-Makefile-\*-|^#.*\s*vim:syntax=make</string>
    

    将修改后的Makefile.tmLanguage放到用户设置目录中:

    ~/.config/sublime-text-3/Packages/User/Makefile.tmLanguage
    

所有匹配第一行规则的文件在打开时都应该打开语法高亮。

【讨论】:

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

以上是关于在 Sublime Text 2 中将默认语法设置为不同的文件类型的主要内容,如果未能解决你的问题,请参考以下文章

软件技巧Sublime Text为不同语法定义不同高亮

Sublime Text 2 - 更改语法的键绑定

如何设置sublime text3默认编码为gbk

如何在 Sublime 3 中设置 scss 语法?

Sublime Text 3 如何修改默认快捷键

Sublime Text3 BracketHighlighter 插件设置