Set default syntax to different filetype in Sublime Text 2
如何在Sublime Text 2中为某个文件扩展名设置默认文件类型?具体来说,我希望将*.cfg文件默认为突出显示ini语法,但似乎无法确定如何创建此自定义设置。
在当前版本的Sublime Text 2(build:2139)中,可以使用菜单栏中的选项为某个文件扩展名的所有文件设置语法。打开一个扩展名为的文件,并通过以下菜单导航:View -> Syntax -> Open all with current extension as... ->[your syntax choice]。
更新的2012-06-28:最近的Sublime文本2版本(至少自2181版本以来)允许通过单击窗口右下角的当前语法类型来设置语法。这将打开语法选择菜单,菜单顶部的选项为Open all with current extension as...。
更新日期:2016年4月19日:目前,这也适用于崇高文本3。
- 您是否尝试过Open all with current extension as...或只是通过Syntax菜单中的选项设置语法?
- 证实。你需要重新启动Sublime以使更改保持不变。此外,这不会更改"活动"文件——您可以通过查看右下角的所选语法来判断。但是重新启动会修复它。
- 这可以在每个项目的基础上完成吗?例如,对于一个项目,我可能需要.html文件的mako语法;而另一个项目可能使用其他语法。
- 这仍然是ST3中使用的方法(从版本3010开始)。似乎不需要重新启动,扩展名为的所有活动文件都将自动更新。
- @肺结核。在我的ST3中,所有选项都被禁用(灰色)
- @子源-确保光标位于打开的文件中的某个位置。
- @子源,你正在编辑的文件需要有文件扩展名。
- 补充问题:如何获取名为build的文件,即使是那些带有#!/bin/bashshebang的文件,而不是默认为NAnt Build File格式?
- 对于没有扩展名的文件(如Makefile文件),如何实现相同的目标?正如另一个答案所建议的那样,我也不能修改它的内容。
转到一个Packages/User文件,创建(或编辑)一个以语法命名的.sublime-settings文件,您要在其中添加扩展名,Ini.sublime-settings在您的例子中,然后这样写:
1 2 3
| {
"extensions":["cfg"]
} |
然后重新启动Sublime文本
- 注意:您要使用的语法是区分大小写的(例如,css的CSS,这将覆盖通过ui设置的语法(请参见@colin's post)
- @埃兰和我为这个问题开了一个问题。
- 我发现崇高文本2/3更容易打开文件,然后选择要使用的语法。然后单击preferences->settings-more->syntax-specific-user。它将为您创建该文件。只需将上述代码粘贴、保存和重新启动即可。
- 使用这种方式是因为我能够删除一个通过用户界面覆盖我的设置的设置文件
- 是否有任何方法可以为特定项目配置此项?
- 注意:如果您的文件有两个扩展名(如Ruby on Rails中的some_page.html.erb),请确保添加{"extensions": ["html.erb"]}—至少当前添加["erb"]是不起作用的。
- 对于scss.liquid文件(具有双扩展名的文件),这在sublime 3中非常有用。我添加了scss.sublime-settings,内容为:"extensions":["scss.liquid"]和wammo bammo。真漂亮!
在ST2中,有一个名为default filetype的包可以安装它。更多信息请访问https://github.com/spadgos/sublime-defaultfiletype。
- 江户十一〔十〕正是我要找的!谢谢
- 在ST3中,它也起作用!只需要一些手动操作(在st3用户路径中保存defaultfiletype)。
- 没用……失望的。
可以根据文件的内容启用语法突出显示。
例如,我的makefiles不管其扩展名如何,第一行如下:
1
| #-*-Makefile-*- vim:syntax=make |
这是其他编辑(如Vim)的典型做法。
但是,要使其工作,您需要修改Makefile.tmLanguage文件。
查找文件(用于Ubuntu中的Sublime文本3),网址:
1
| /opt/sublime_text/Packages/Makefile.sublime-package |
注意,这确实是一个压缩文件。复制它,在末尾用.zip重命名,然后从中提取makefile.tmlanguage文件。
通过在"filetypes"部分后面添加"firstlinematch"键和字符串,编辑新的Makefile.tmLanguage。在下面的示例中,最后两行是新的(应该由您添加)。部分包含正则表达式,它将为与第一行匹配的文件启用语法突出显示。该表达可识别两种模式:"-*-Makefile-*-和"vim:syntax=make"。
1 2 3 4 5 6 7 8 9 10 11 12
| ...
<key>fileTypes</key>
<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放入用户设置目录:
1
| ~/.config/sublime-text-3/Packages/User/Makefile.tmLanguage |
所有与第一行规则匹配的文件在打开时应打开语法突出显示。
- 这很有帮助。很高兴知道这是可能的,但是为每个可能包含这种模式的文件类型编辑每个.sublime包文件是不实际的。因此,我可能不会使用这个特性。