Sublime Text 下的 MATLAB/Octave .m 文件

52

Sublime把.m文件看作是Objective C文件。

我得到了一堆MATLAB/Octave文件,用Octave处理,所有这些文件都有.m扩展名。

如果我把扩展名改成.matlab,那么Sublime将识别并正确格式化它们,但是Octave就无法识别了。

我想要做的是:

(1) 更改Sublime,使其将.m识别为MATLAB/Octave而不是Objective C,或者

(2) 告诉Octave将.matlab识别为可以直接运行的文件。

我已经在Sublime和Octave方面进行了调查,但没有结果(不是答案),而我对Octave还很陌生。谢谢。


4个回答

65

2
@Eric Leschinski链接的帖子中有答案。或者至少这是我设置Sublime 2关联我的.m文件的方法。“将所有具有当前扩展名的文件全部打开为->” - AGS
42
就是这样:查看 -> 语法 -> 打开所有与当前扩展名相同的文件... -> -- 非常感谢大家。 - scharfmn

3
这里是如何在Sublime Text中使用CTRL+B直接运行Matlab/Octave代码,并将.m文件与这个Matlab语法相关联。这是针对Windows的特定说明,原因请见下文注释。
首先是一个Matlab.sublime-build文件:
{
    "cmd": ["cmd", "/k", "D:\\Documents\\software\\octave-4.0.0\\bin\\octave-cli.exe", "$file"],
    "selector": "source.matlab"
}

然后是一个名为Matlab.sublime-settings的文件:
{
    "extensions":
    [
        "m"
    ]
}

注意:我使用了cmd /k技巧,让图表显示在一个新窗口中,这个窗口不会在10毫秒后“消失”(参见如何在Octave中运行代码而不依赖IDE(类似于Python)?Octave:如何防止图表窗口自动关闭?)。因此,请不要忘记将以下内容添加到您的图表中:
h = plot(...)
waitfor(h)

2
这些文件是脚本还是函数?如果是Octave脚本而不是函数,那么您可以使用任何扩展名并使用 source() 运行它们,与扩展名无关。如果它们是函数,与Matlab不同,您可以在脚本文件中定义函数、加载它们,并将它们保留在内存中。
但如果你根本不需要语法高亮,你应该能够更改Sublime,只需找到Objective-C.Sublime-package文件。不运行它,只需查看安装程序中的文件,我看到两种方法可以做到:
1.尝试删除它(或只是将其名称更改为 .bak 等其他名称,以防发生故障时可以恢复它)
2.那个文件是一个tarball,有两个XML文件。打开这些文件并编辑设置这些文件扩展名的条目,使之不同于.m
当然,还有一种选择是更换为自由的文本编辑器,允许您查看其源代码并进行任何想要的更改。

我和其他人一样热爱自由软件(甚至更多),但在这种情况下,它并不能比ST2给你更多的优势。你可以从ObjC和MATLAB语言文件中更改这些设置,以使突出显示与“.m”匹配(如果可以在不重新编译的情况下完成,则在FS中也必须这样做)。 - Egon
它们是文件,而且source()非常整洁。非常感谢。 - scharfmn

0

这对我来说很好用。我只需放入Octave路径,代码就可以完美运行

{
"cmd": ["/usr/local/octave/3.8.0/bin/octave-3.8.0", "$file"],
"selector": "source.m"
}

将其保存为Octave.sublime-build


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接