必须先确认gfortran已安装且被Sublime继承PATH,再手动绑定Fortran语法(.f90选FortranFreeForm、.f选FortranFixedForm),最后创建UTF-8无BOM的Fortran.sublime-build文件,其中cmd、selector(必须为source.fortran)、working_dir字段须精准配置。

gfortran 装没装、能不能被 Sublime 看见
没装 gfortran 或者装了但 Sublime 启动时没继承到它的路径,后面所有配置都白搭。终端里能跑 gfortran --version ≠ Sublime 能调用。
- macOS:Homebrew 安装的
gfortran通常在/opt/homebrew/bin/gfortran(Apple Silicon)或/usr/local/bin/gfortran(Intel),但 GUI 启动的 Sublime 不读~/.zshrc;必须从终端执行open -a "Sublime Text"或env PATH="/opt/homebrew/bin:$PATH" subl - Linux:若用 snap 安装 Sublime,它被沙盒隔离,PATH 再全也无效;换 deb/rpm/tarball 版本
- Windows:MinGW-w64 的
gfortran.exe(如C:msys64mingw64ingfortran.exe)必须加进系统PATH,改完后要彻底杀掉 Sublime 进程(任务管理器里清干净)再重启
验证方式:Sublime 里 Ctrl+Shift+P → 输入 Build With,看列表里有没有你命名的构建系统;选中后若报 gfortran: command not found,就是 PATH 没继承到。
Fortran 语法高亮和文件后缀绑定对不对
打开 .f90 文件右下角还是 Plain Text?那 selector 字段再准也没用——Sublime 根本不知道你在写 Fortran。
- 装插件别搜“Modern Fortran”,直接搜
Fortran(作者是 sublimelsp 团队维护的官方包) - 打开一个
.f90文件,点击右下角语言名 →Fortran > FortranFreeForm;打开.f文件则选Fortran > FortranFixedForm - 绑定后缀:点右下角 →
Open all with current extension as…→ 选对应格式;否则每次都要手动切 - 如果用了
lsp-fortran,必须关掉旧版Fortran插件,否则高亮错乱
常见错误现象:program、end program 不变色,缩进乱,关键词没提示——基本就是这一步没做或做错。
Fortran.sublime-build 文件写对没
这个 JSON 文件必须存为 UTF-8 无 BOM,放在 Packages/User/ 目录下,后缀严格为 .sublime-build;改完不重启 Sublime,它不会生效。
-
cmd:Linux/macOS 可写["gfortran", "-o", "${file_base_name}", "${file}"];Windows 必须用绝对路径,如["C:\msys64\mingw64\bin\gfortran.exe", "-o", "${file_base_name}.exe", "${file}"](注意双反斜杠) -
selector:必须设为"source.fortran, source.f90",不是source.f或单独写source.f95 -
working_dir:一定要设成"${file_path}",否则运行时报No such file or directory -
variants:加个Run变体,命令为["./${file_base_name}"](macOS/Linux)或["cmd", "/c", "${file_path}\${file_base_name}.exe"](Windows)
容易漏的坑:路径含空格没加引号、文件名用了中文路径(Windows 下 gfortran 可能直接报错)、file_regex 没配导致错误不跳转(建议加上 "file_regex":"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$")。
调试靠 print 和外部 gdb,别指望 Sublime 原生支持
Sublime Text 没有原生 Fortran 调试器集成,所谓“调试”只能靠 print 输出变量,或手动在终端里用 gdb 加载可执行文件。
- 编译时加
-g参数:把cmd改成["gfortran", "-g", "-o", "${file_base_name}", "${file}"] - 生成的可执行文件默认在源码同目录,但 Windows 上得加
.exe后缀,否则Run变体会失败 - 模块跳转和补全受限于 Fortran 的
use机制,lsp-fortran+fortls可提供基础支持,但依赖include路径正确配置,且不能跨项目自动索引
最常被忽略的一点:gfortran 默认只认 .f90 后缀,对 .f03、.f08 需显式加 -x f95 参数,或者统一用 .f90 扩展名避免麻烦。


















