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

kei*_*mps 723 text-editor sublimetext sublimetext2

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

Col*_*n R 1584

在当前版本的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.

  • 这仍然是ST3中使用的方法(从版本3010开始).似乎不需要重新启动,并且所有带有扩展名的活动文件都会自动更新. (43认同)
  • 这可以在每个项目的基础上完成吗?例如,对于一个项目,我可能想要.html文件的Mako语法; 而另一个可能使用另一种语法. (8认同)
  • @ziyuang - 确保将光标放在打开文件中的某个位置. (3认同)
  • 您是否尝试过"使用当前扩展名打开所有..."或者只是通过"语法"菜单中的选项设置语法? (2认同)

kiz*_*izu 148

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

{
    "extensions":["cfg"]
}
Run Code Online (Sandbox Code Playgroud)

然后重新启动Sublime Text

  • 我发现使用sublime text 2/3更容易打开文件,然后选择要使用的语法.然后单击首选项 - >设置 - 更多 - >特定于语法 - 用户.它会为你创建该文件.只需将上面的代码粘贴,保存并重新启动即可. (29认同)

小智 21

在ST2中,您可以安装一个名为Default FileType的软件包.有关https://github.com/spadgos/sublime-DefaultFileType的更多信息.


elo*_*age 5

您可以基于文件的内容打开语法突出显示。

例如,我的Makefiles不管其扩展名的第一行如下:

#-*-Makefile-*- vim:syntax=make
Run Code Online (Sandbox Code Playgroud)

这是vim等其他编辑器的典型做法。

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

  1. 在以下位置找到文件(对于Ubuntu中的Sublime Text 3):

    /opt/sublime_text/Packages/Makefile.sublime-package
    
    Run Code Online (Sandbox Code Playgroud)

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

  1. Makefile.tmLanguage通过在“ fileTypes”部分之后添加“ firstLineMatch”键和字符串来编辑新内容。在下面的示例中,最后两行是新的(应由您添加)。该<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>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将修改后的内容Makefile.tmLanguage放入“用户设置”目录中:

    ~/.config/sublime-text-3/Packages/User/Makefile.tmLanguage
    
    Run Code Online (Sandbox Code Playgroud)

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