Sublime Text默认不识别Fortran文件,必须安装官方Fortran语法包、手动设置语法为FortranFreeForm/FortranFixedForm,并配置含"selector":"source.fortran"的构建系统,否则高亮、编译、错误跳转均失效。

Sublime Text 默认不识别 .f90 或 .f 文件,不装语法包、不手动选语法、不配构建系统,Fortran 代码永远是纯文本——高亮不会出现,Ctrl+B 不会编译,错误行点不了跳转。这不是你漏步骤,是 Sublime 根本没“看见”你在写 Fortran。
Fortran 语法高亮为什么完全没反应
现象:打开 main.f90,program 不变色、end do 没提示、缩进全乱、右下角显示 “Plain Text”。这不是主题问题,也不是插件冲突,是 Sublime 压根没加载 Fortran 语法定义。
- 必须通过
Package Control: Install Package安装官方Fortran包(作者sublimelsp),别搜 “Modern Fortran” 或 “Auto-Compile”,那些和 LSP 冲突概率高 - 装完后,打开任意
.f90文件 → 点右下角 “Plain Text” → 选Fortran > FortranFreeForm;.f文件则选Fortran > FortranFixedForm - 想一劳永逸?按
Ctrl+Shift+P输入Set Syntax: FortranFreeForm,再选Open all with current extension as…,这样所有.f90文件下次自动匹配 - 如果菜单里压根没有
Fortran选项,先Ctrl+Shift+P→Reload Syntax Definitions;还不行就确认是否真装上了——Preferences → Package Settings → Fortran应该存在
构建系统配置后 Ctrl+B 仍无声无息
按下 Ctrl+B 状态栏一闪就消失、没输出、没报错、也没可执行文件生成——大概率是构建系统没激活,或 selector 和当前文件语法不匹配。
- 新建构建系统:
Tools → Build System → New Build System,贴入以下内容并保存为Fortran.sublime-build:
{
"shell_cmd": "gfortran -Wall -Wextra -J./ -c $file_name && gfortran -o ${file_base_name} $file_name",
"file_regex": "^(..[^:]*):([0-9]+):([0-9]+):? ?(.*)$",
"working_dir": "$file_path",
"selector": "source.fortran"
}
selector 必须是 source.fortran —— 这和你右下角选的 FortranFreeForm 对应,不是 source.f90 或其他任意字符串gfortran --version 能正常运行;Windows 用户若用 MinGW-w64,建议把 ucrt64\bin 加进系统环境变量,而不是在 shell_cmd 里硬写绝对路径Tools → Build System → Fortran(别留成 “Automatic”)高亮有了但关键字/注释颜色不对
现象:program、real、! 等有 scope 划分(能被 Inspect Scope 识别),但颜色还是灰的或和 Python 一样——这不是语法包问题,是当前配色方案没定义对应 scope 的样式。
- 按
Ctrl+Shift+P输入Inspect Scope,把光标停在program上,看输出类似keyword.control.fortran的完整 scope 链 - 查当前配色方案名:
Preferences → Color Scheme,记下路径(如Monokai.sublime-color-scheme) - 用
PackageResourceViewer: Open Resource找到该文件,在"rules"数组末尾加一条:
{"scope":"keyword.control.fortran","foreground":"#FF8C00"}
错误能跳转但模块跳转/补全很弱
Sublime Text 没原生 Fortran 语义分析能力,use 语句后的模块名无法跳转定义,变量补全基本靠已输入单词匹配——这不是配置不到位,是编辑器能力边界。
- 补全和跳转严重依赖
lsp-fortran+fortls,但启用前必须关掉旧版Fortran语法包,否则高亮会错乱 - 模块查找推荐辅助手段:
ctags -R --fortran-kinds=+im --fields=+nia .生成标签,再用goto_definition(需安装CTags插件) - 更轻量的替代:在项目根目录建
.tags,用find . -name "*.f90" | xargs grep -l "module mymod"快速定位
最常被忽略的一点:Sublime 启动时继承的 PATH 和终端不一致,尤其 macOS/Linux 图形界面启动的 Sublime,gfortran 常找不到;Windows 下改了环境变量但没重启资源管理器,进程照样看不到新 PATH。验证方式:开 Sublime → Ctrl+` 调出控制台 → 输入 import os; print(os.environ.get('PATH')),和终端里 echo $PATH 对比。


















