我有一些八度文件,以默认.m
扩展名结尾。
在文件中,我将其作为 ASCII 文本获取:
file euler.m
euler.m: ASCII text
和鹦鹉螺中的纯文本图标。
如何将.m
文件类型分配给octave/matlab?
答案1
nautilus不是这样file
工作的。扩展名不是文件类型。从文件内容中检测到的 MIME 类型用于确定 MIME 类型,这就是定义符号的内容。这比 Windows 过去所做的要好,纯粹根据扩展名来决定,因为,好吧,nautilus 会向您显示一个 word 文档作为 word 文档并使用 libreoffice 打开它,无论其扩展名是 .doc 还是 .png 或。TXT。
现在,octave/matlab 脚本是纯文本文件,并且由于历史原因,它们通常仅限于 ASCII 字符(如果我没记错的话,对此没有技术要求)。
因此,可能缺少的只是 m 脚本的检测魔法,它将使文件能够将这些程序文本识别为该特定语言的程序文本。
认识编程语言并不是一件小事。但这也不是不可能,因为在很多情况下,file
可以很好地区分 C++ 和 Python,甚至 C 源代码。
# octave/matlab script
# we'll just look for "function"; then make sure it's at the beginning of the line, followed by one or more space, followed by a function name, followed by possibly a space followed by an equality sign
0 search/8192 function
>0 regex \^function[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*= Matlab/Octave Source Code
!:mime text/x-octave
这是一个非常粗略的检查(我什至没有测试过),但它会查找 m 脚本样式的函数声明。这是我能想到的最好的启发法。