必须先安装官方Fortran语法包、手动设置右下角语法为FortranFreeForm(.f90)或FortranFixedForm(.f),再绑定后缀,否则Sublime始终识别为Plain Text,高亮、缩进、构建等功能均失效。

Fortran 代码在 Sublime Text 里还是纯文本?不是插件冲突,是语法识别根本没启动——没装包、没选对语法、没绑定后缀,高亮就永远不会出现。
为什么 .f90 文件打开就是 Plain Text
Sublime Text 默认不带 Fortran.tmLanguage,也不根据后缀自动匹配语法。你双击打开 main.f90,它就老老实实当纯文本处理:program 不变色、end do 没提示、缩进全乱。这不是“高亮失效”,是压根没触发 Fortran 语法解析。
- 必须先通过
Package Control: Install Package安装官方Fortran包(作者sublimelsp,别选Modern Fortran或Auto-Compile) - 装完重启 Sublime,或按
Ctrl+Shift+P输入Reload Syntax Definitions刷新 - 打开任意
.f90文件 → 点右下角语言名(如Plain Text)→ 选Fortran > FortranFreeForm - 想一劳永逸?再按
Ctrl+Shift+P输入Set Syntax: FortranFreeForm,然后选Open all with current extension as…
高亮了但 keyword / comment 颜色不对
语法包只负责把 program 标为 keyword.control.fortran,把 ! 后内容标为 comment.line.exclamation.fortran;最终显什么颜色,取决于当前配色方案是否定义了这些 scope。
- 按
Ctrl+Shift+P输入Inspect Scope,光标停在program上,看输出里有没有keyword.control.fortran - 如果 scope 正确但颜色不对,说明配色方案缺规则:打开
Preferences → Color Scheme查当前文件名,再用PackageResourceViewer: Open Resource找到对应.sublime-color-scheme - 在
"rules"数组末尾加一条,例如:{"scope":"keyword.control.fortran","foreground":"#FF8C00"} - 保存后,重新选一遍该配色方案(Sublime 4 可实时预览,ST3 建议重启)
构建系统写好了但 Ctrl+B 没反应
按下 Ctrl+B 状态栏一闪就消失,大概率不是命令写错,而是构建系统根本没激活——selector 和当前文件的语法 scope 不匹配。
- 确认右下角显示的是
FortranFreeForm(不是Plain Text或FortranFixedForm),否则selector设成source.fortran也白搭 - 检查
Fortran.sublime-build是否存放在Packages/User/目录下,且文件名严格为Fortran.sublime-build -
selector必须是source.fortran(不是source.f90或source.fortran90),这和你手动选的语法类型强绑定 - 改完构建文件必须重启 Sublime,或手动触发重载:
Tools → Build System → New Build System…(打开再关掉) - Windows 用户务必设
"shell": true,否则找不到gfortran
gfortran 能终端运行,Sublime 里却报 command not found
Sublime 启动时不会完整继承 shell 的 PATH,尤其 macOS/Linux 下用 Dock 或桌面快捷方式启动时,环境变量常被截断。
- 先在终端运行
gfortran --version确认可用;再在 Sublime 里按Ctrl+Shift+P输入Shell Environment查看实际加载的PATH - macOS/Linux:避免从 GUI 启动,改用终端执行
subl(需先ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl) - Windows:把 MinGW-w64 的
ucrt64\bin(或x86_64\bin)加进系统环境变量,不要在构建系统里硬写绝对路径 - 构建系统中用
"shell_cmd"时,确保命令字符串能被 shell 正确解析,比如路径含空格要加引号
最容易被忽略的一点:所有配置都依赖「语法识别先行」——没让 Sublime 认出这是 Fortran,后续的高亮、缩进、构建、跳转全部失效。而这个识别动作,必须由人手动触发一次,它不会自己猜。

















