必须先安装并配置gfortran到path,再安装官方fortran语法包、手动设置语法为fortranfreeform/fortranfixedform,最后创建含"selector":"source.fortran"和匹配gfortran错误格式的构建系统,否则高亮、编译、错误跳转均失效。

Sublime Text 本身不带 Fortran 支持,所有功能都依赖外部工具链和手动配置。没装 gfortran 或没加进 PATH,后续所有操作都是空转。
确认 gfortran 已就绪且可被调用
这是整个流程的硬前提,跳过这步,Build System 会静默失败或报 command not found。
- 打开终端(Windows 是 CMD/PowerShell,macOS/Linux 是 Terminal),运行
gfortran --version;必须看到版本号(如GNU Fortran (MinGW-W64) 14.2.0),否则立即回头装编译器 - Windows 用户若用 MinGW-w64,推荐把
ucrt64in(或x86_64-w64-mingw32in)加进系统PATH,而不是在 Build 文件里写死绝对路径——后者会导致换机器/重装就崩 - macOS 用户用 Homebrew 安装后,可能需执行
sudo xcode-select --install补全命令行工具;Linux 用户确保已运行sudo apt install gfortran(Debian/Ubuntu)或等效命令
安装 Fortran 语法包并手动指定语法类型
Sublime 不会根据 .f90 后缀自动识别 Fortran,不手动点选,高亮、缩进、注释识别全失效。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package,回车后搜Fortran,选官方维护的Fortran插件(作者通常是315234或sublimelsp相关) - 打开一个
.f90文件,右下角点击当前语法名(默认是Plain Text),选择Fortran > FortranFreeForm;如果是老式.f固定格式文件,则选Fortran > FortranFixedForm - 想让所有
.f90文件默认用该语法:菜单栏View → Syntax → Open all with current extension as…,再选一次FortranFreeForm
创建正确的 .sublime-build 文件,匹配 gfortran 错误格式
Build System 的 file_regex 必须能从 gfortran 输出中准确捕获文件名、行号、列号,否则 Ctrl+Click 跳转错误行会失灵。
- 菜单栏
Tools → Build System → New Build System,粘贴以下内容(注意:不要直接复制网上的旧版正则,gfortran 12+默认输出格式已变):
{
"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",
"variants": [
{
"name": "Run",
"shell_cmd": "gfortran -Wall -Wextra -J./ -c $file_name && gfortran -o ${file_base_name} $file_name && ./${file_base_name}"
}
]
}
-
selector必须是source.fortran,不是source.f90或source.modern-fortran——它对应你右下角选的FortranFreeForm语法,错一个字母就触发不了构建 -
file_regex中的^(..[^:]*):([0-9]+):([0-9]+)是关键:匹配形如main.f90:12:5:的报错,旧版正则漏掉列号或用\d+不够严谨,会导致跳转错位 - 保存为
Fortran.sublime-build(名字任意,但后缀必须是.sublime-build),之后在Tools → Build System下就能选到它
运行与调试前的两个易忽略细节
很多用户卡在“能编译但不能运行”或“运行一闪而退”,问题往往不在 Build 配置本身。
- Windows 下
Run变体若用cmd /k,需确保命令末尾有&& pause,否则控制台窗口瞬间关闭;但更稳妥的做法是用cmd /c start cmd /k "xxx && pause",避免子 shell 权限或路径解析异常 - 如果程序含
read(*,*)等交互输入,直接 Ctrl+B 运行会卡住——因为 Sublime 的 Build 输出面板不支持 stdin 输入;此时必须切到终端,cd 到文件目录,手动运行./a.out或a.exe - 调试需要额外插件(如
sublimeGDB)和gdb,但gfortran -g编译出的二进制不一定被 GDB 完全识别(尤其 Windows 上),建议先用print *, "debug here"验证逻辑,再上调试器
真正容易卡住的地方,是 gfortran 版本更新后错误格式微调、selector 和语法类型不一致、以及 Windows 下中文路径导致 shell_cmd 解析失败——这些都不会报明确错误,只会让构建看起来“成功”却无输出或跳转无效。











