拡張子のファイル形式が正しくありません。

拡張子のファイル形式が正しくありません。

.mデフォルトの拡張子で終わるオクターブファイルがあります。

ファイルにはASCIIテキストとして表示されます。

file euler.m 
euler.m: ASCII text

ノーチラスのテキスト専用アイコン。

.m オクターブ/matlabにファイル形式を割り当てる方法は?

答え1

それはノーチラスが働く方法ではありませんfile。拡張子はファイル形式ではありません。ファイルの内容で検出されたMIMEタイプは、シンボルを定義するMIMEタイプを決定するために使用されます。これは純粋に拡張子に基づいていたWindowsよりも優れています。なぜなら、ノーチラスは、拡張子が.doc、.png、または.pngであるかにかかわらず、単語文書を単語文書としてマークし、libreofficeを使用して開くことができるからです。 TXT。

今オクターブ/matlabスクリプトはいプレーンテキストファイルは、歴史的な理由で通常ASCII文字に制限されています(私の記憶が正しい場合は、技術的な要件はありません)。

したがって、欠落している可能性があるのは、ファイルがこれらのプログラムテキストを特定の言語のプログラムテキストとして認識できるようにするmスクリプトの検出魔法です。

プログラミング言語を知ることは決して簡単なことではありません。しかし、不可能ではありません。多くの場合、fileC ++を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スクリプトスタイル関数宣言を探します。これが私が考えることができる最高のヒューリスティックです。

関連情報