fortran语法高亮完全不生效是因为sublime text未加载fortran语法定义,必须安装官方fortran插件(作者sublimelsp)、手动设置语法为fortranfreeform/fortranfixedform、配置selector为source.fortran的构建系统,缺一不可。

Fortran语法高亮完全不生效,右下角显示“Plain Text”
这不是主题或插件冲突导致的,是 Sublime Text 根本没加载 Fortran 语法定义。它连 .f90 文件都当纯文本处理,后续所有功能(缩进、跳转、构建)全失效。
- 必须通过
Package Control: Install Package安装官方Fortran插件(作者sublimelsp),别选Modern Fortran或MinimalFortran——它们和 LSP 补全工具冲突概率高 - 装完后打开任意
main.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 按下后无输出、无错误、也不生成可执行文件
根本原因不是编译器坏了,而是构建系统没激活,或者 selector 和当前文件语法不匹配——Sublime 不会自动猜你写的是 Fortran。
- 新建构建系统:
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 或其他任意字符串Tools → Build System → Fortran(别留成 Automatic)gfortran --version;Windows 用户若用 MinGW-w64,建议把 ucrt64in 加进系统 PATH,而不是在 shell_cmd 里硬写绝对路径编译成功但运行时卡住、无法读取键盘输入(如 read(*,*))
Sublime 的构建系统默认在后台静默执行,read 类交互式语句会因 stdin 被重定向而阻塞或直接跳过——这不是代码错,是运行环境没配对。
- 不要依赖默认构建系统运行带输入的程序;改用终端手动测试:
cd $file_path && gfortran -o ${file_base_name} $file_name && ./${file_base_name} - 如需一键运行,可新增一个
variants,例如在Fortran.sublime-build中追加:
"variants": [
{
"name": "Run",
"shell_cmd": "gnome-terminal -- bash -c "gfortran -o ${file_base_name} $file_name && ./${file_base_name}; read -p '\nPress any key to continue'""
}
]
gnome-terminal);Windows 用户可用 cmd /c start cmd /k 包裹,macOS 则用 open -a Terminal
gdb)配合 lsp-fortran 实现断点调试Fortran 文件能高亮但关键字/注释颜色异常(比如 program 和 ! 都是灰色)
Fortran 语法包只负责把代码切分成 keyword.control.fortran、comment.line.fortran 等 scope,最终颜色由当前配色方案决定。很多主题压根没定义这些 scope,于是回落到通用色。
- 按
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"}
Fortran 在 Sublime 中不是“开箱即用”的语言,语法识别、构建系统、交互运行、颜色渲染这四层必须逐层对齐——漏掉任意一层,都会表现为“好像配置了,但就是不对”。最常被忽略的是 selector 和 source.fortran 的绑定关系,以及 read 类语句在构建系统中的 stdin 处理方式。











