.m文件为MATLAB / Octave for Sublime Text

时间:2012-08-22 20:53:03

标签: matlab octave sublimetext2 sublimetext

Sublime将.m个文件视为Objective C文件。

我已经获得了一堆MATLAB / Octave文件,可以使用Octave,所有文件都使用.m扩展名。

如果我将扩展名更改为.matlab,那么Sublime会识别它​​们并正确格式化它们,但是Octave看不到它们。

我想要:

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

(2)告诉Octave将.matlab视为可以运行的东西。

我已经在Sublime和Octave方面捅了一下,但无济于事(this不是答案),而且我是Octave noob。谢谢。

4 个答案:

答案 0 :(得分:62)

Sublime 2可以配置为将某些文件扩展名与某些语法突出显示方案相关联。请参阅此答案,了解具体操作方法https://stackoverflow.com/a/8014142/694184

答案 1 :(得分:3)

这里是如何使用 CTRL+B 直接从 Sublime Text 运行 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 毫秒后不会“消失”(参见 How to run Octave code without the Octave IDE (similarly to Python)?Octave: How to prevent plot window from closing itself?)。因此,不要忘记将其添加到您的图中:

h = plot(...)
waitfor(h)

答案 2 :(得分:2)

这些文件是脚本还是函数?如果它们是Octave脚本而不是函数,那么您可以使用任何您喜欢的扩展名并使用source()来运行它们,而不受扩展名的影响。如果它们是函数,与Matlab不同,您可以在脚本文件中定义函数,加载它们,它们将保留在内存中。

但是如果您根本不需要语法高亮,那么您应该能够更改Sublime,只需找到文件Objective-C.Sublime-package。如果不运行它,只需查看安装程序中的文件,我就会看到两种方法:

  1. 尝试删除它(或者只是更改名称.bak,以便在出现问题时可以恢复它)
  2. 该文件是包含两个XML文件的tarball。打开这些文件并编辑条目,为不同的.m
  3. 设置这些文件的扩展名

    当然,还可以选择更改为自由文本编辑器,以便您查看其来源并执行任何操作。

答案 3 :(得分:0)

这对我来说很好。 我刚刚把八度音程的路径和代码完全运行了

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

将其另存为Octave.sublime-build