【问题标题】:setting default syntax for sublime doesn't work为 sublime 设置默认语法不起作用
【发布时间】:2014-06-03 13:14:51
【问题描述】:
每当我打开一个.m 文件时,默认语法是objective-c,但我想将其更改为matlab。因此,当我打开一个 .m 文件时,我会转到
查看 -> 语法 -> 以当前扩展名打开所有..
然后选择 matlab。之后,如果我打开另一个 .m 文件,默认语法是 matlab。但是,如果我关闭 sublime 并再次打开它,默认语法将返回到 Objective-c。
我添加了 Objective-c 来忽略语法列表,但现在它以纯文本形式打开 .m 文件。还有其他方法可以为文件扩展名设置默认语法吗?
【问题讨论】:
标签:
matlab
syntax
sublimetext2
sublimetext
【解决方案1】:
在 sublime3 中,查看 -> 语法 -> 使用当前扩展名打开所有...如果您关闭然后打开 sublime,则可以正常工作。
【解决方案2】:
我不确定 Sublime 为什么要这样做,但有办法解决它。由于您使用的是 ST2,因此非常简单。选择 Preferences -> Browse Packages... 打开您的 Packages 文件夹,然后打开 Objective-C 子文件夹。在 Sublime 中打开 Objective-C.tmLanguage 作为 XML 文件,并注释掉(或完全删除)第 7 行:
<string>m</string>
保存文件并关闭它。接下来打开Objective-C++.tmLanguage,对第8行做同样的事情:
<string>M</string>
保存并关闭该文件。最后,为了确保您的 Open all with current extension as... 命令有效,请转到 Packages/User 并检查是否存在名为 MATLAB.sublime-settings 的文件。将其作为 JSON 文件打开,并仔细检查其内容是否如下:
{
"extensions":
[
"m"
]
}
如果由于某种原因文件不存在,请使用上述内容创建并保存。您现在应该可以打开任何.m 文件并将语法自动设置为MATLAB。
Sublime Text 3 用户注意事项:
ST3 不再将其默认包存储在Packages 中,而是将它们作为压缩的.sublime-package 文件存储在Installed Packages 文件夹中(其位置因操作系统和安装类型而异)。要访问内容,请安装@skuroda 的PackageResourceViewer 插件以无缝访问这些文件的内容。安装后,打开命令面板(Windows/Linux 上为 CtrlShiftP,⌘ShiftP 在 OS X 上)并输入 prv 以调出PackageResourceViewer 选项。选择Extract Package,向下滚动到Objective-C,然后按Enter。您现在可以按照上面的说明打开Packages/Objective-C 文件夹并编辑.tmLanguage 文件。 Packages/User目录是普通目录,不需要解压来验证MATLAB.sublime-settings的内容。
【解决方案3】:
我认为为什么会发生这种情况,至少在 Sublime 3 (v3.2.1) 中是这样。使用PackageResourceViewer: Extract Package提取Matlab包后,在第6行的Matlab.sublime-syntax中发现:
- matlab
由于.matlab不是matlab函数和脚本的扩展,所以我把它改成- m后,Sublime会以MATLAB语法显示.m文件。