必须先手动指定语法类型(右下角选fortranfreeform/fortranfixedform),再配置fortran.sublime-build构建系统,否则无法高亮、缩进、编译;语法包未安装时需通过package control安装官方fortran插件。

Fortran 文件在 Sublime Text 里显示为纯文本、没高亮、缩进错乱——这不是插件缺失,而是语法识别和构建系统两层基础配置都没做。必须先手动指定语法类型,再补上构建定义,否则所有后续功能(跳转、补全、调试)都无从谈起。
怎么让 .f90 或 .f 文件自动高亮
Sublime 不会根据后缀名自动匹配 Fortran 语法,打开 .f90 文件默认就是 Plain Text。这步不手动干预,高亮永远不会出现。
- 打开任意 Fortran 源文件 → 点击右下角当前语法名(如
Plain Text)→ 选择Fortran > FortranFreeForm(对应.f90)或Fortran > FortranFixedForm(对应老式.f) - 这个操作只影响当前文件;若想让所有
.f90文件默认用该语法,需执行View → Syntax → Open all with current extension as…,再选一次FortranFreeForm - 如果菜单里没有
Fortran选项,说明 Fortran 语法包未加载:按Ctrl+Shift+P输入Reload Syntax Definitions尝试刷新;仍无效则需确认是否安装了官方Fortran插件(通过Package Control: Install Package搜索安装)
为什么高亮了但关键字/注释颜色不对
Fortran 语法本身只负责把代码切分成 keyword、comment、string 等 scope,最终颜色由当前配色方案(.sublime-color-scheme)决定。很多主题(尤其是深色系)没定义 keyword.fortran 或 comment.fortran,就会回落到通用色,看起来像“没高亮”。
- 按
Ctrl+Shift+P输入Inspect Scope,将光标停在program或!上,看输出的 scope 链,例如keyword.control.fortran - 打开当前配色方案文件(
Preferences → Color Scheme查名称,再用PackageResourceViewer: Open Resource找到对应.sublime-color-scheme) - 在
"rules"数组末尾添加规则,例如:{"scope": "keyword.control.fortran", "foreground": "#FF8C00"} - 保存后重新选一遍当前配色方案才能生效(Sublime 4 可实时预览,ST3 建议重启)
怎么运行 Fortran 代码(构建系统配置)
Sublime 没有内置 Fortran 构建支持,必须手动写 Fortran.sublime-build 文件,否则 Ctrl+B 会报错 “No build system” 或直接调用 shell 默认命令。
- 菜单栏 →
Tools → Build System → New Build System…,粘贴以下内容并保存为Fortran.sublime-build(路径自动落在Packages/User/):{ "cmd": ["gfortran", "-o", "$file_base_name", "$file"], "selector": "source.fortran", "shell": true, "working_dir": "$file_path" } -
"selector": "source.fortran"是关键:它让 Sublime 知道这个构建系统只对 Fortran 语法文件生效;若写成source.f或漏掉,Ctrl+B就不会触发 - 确保系统已安装
gfortran(Linux/macOS 用包管理器,Windows 推荐 MinGW-w64),且能从终端直接运行gfortran --version - 构建后生成的可执行文件默认在源码同目录,如需运行,可再配一个
Run Fortran.sublime-build,"cmd"改为["./$file_base_name"]
Fortran 模块跳转和补全为什么基本失效
Fortran 的模块依赖是隐式、非结构化的(靠 use + 文件位置 + 编译顺序),Sublime 原生无法解析这种关系。所谓“跳转到定义”或“自动补全”,在 Fortran 场景下几乎只能靠外部工具辅助。
- 不要依赖
Goto Definition(F12):它对use mymod后的mymod_sub几乎无效,因为 Sublime 不知道mymod定义在哪 - 可行方案只有两个:
ctags(用ctags -R --fortran-kinds=+im --fields=+nia生成标签,再配CTags插件)或手动Ctrl+P搜索文件名跳转 - 补全建议关闭:Fortran 关键字极少,开启
auto_complete反而干扰(尤其在写do i = 1, n时弹出无关建议);可在Settings – Syntax Specific中为 Fortran 单独设"auto_complete": false - 调试只能靠 print 或终端
gdb:Sublime 无原生 Fortran 调试器集成,别浪费时间找“Fortran debugger 插件”
Fortran 在 Sublime 里永远是个“半手工”环境:语法高亮和构建能配好,但模块感知、跨文件跳转、智能补全这些现代语言标配,在 Fortran 语境下天然受限。接受这点,把精力放在写准 gfortran 参数和维护好 ctags 上,比折腾插件更实际。











