fortran语法高亮完全不生效,是因为sublime未加载fortran语法定义;必须通过package control安装官方fortran包(作者sublimelsp),打开.f90文件后手动选fortran > fortranfreeform,并确认preferences → package settings → fortran存在,否则右下角始终显示“plain text”。

Fortran语法高亮完全不生效?先确认是否真装对了包
打开 main.f90,右下角显示“Plain Text”,program 不变色、end do 没提示、缩进全乱——这不是主题或插件冲突,是 Sublime 根本没加载 Fortran 语法定义。
- 必须通过
Package Control: Install Package安装官方Fortran包(作者sublimelsp),别搜 “Modern Fortran” 或 “Auto-Compile”,那些和 LSP 冲突概率高 - 装完后,打开任意
.f90文件 → 点右下角 “Plain Text” → 选Fortran > FortranFreeForm;.f文件则选Fortran > FortranFixedForm - 如果菜单里压根没有
Fortran选项:按Ctrl+Shift+P输入Reload Syntax Definitions刷新;仍无效就检查Preferences → Package Settings → Fortran是否存在 - 想一劳永逸?设置完语法后,再执行
View → Syntax → Open all with current extension as…,选FortranFreeForm,这样所有.f90文件下次自动匹配
Ctrl+B 按下没反应?构建系统没激活或 selector 错了
按下 Ctrl+B 状态栏一闪就消失、没输出、没报错、也没生成可执行文件——大概率是构建系统没激活,或 selector 和当前文件语法不匹配。
- 新建构建系统:
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,建议把 ucrt64\bin 加进系统环境变量,而不是在 shell_cmd 里硬写绝对路径为什么能高亮但关键字颜色不对?配色方案没覆盖 Fortran scope
语法高亮开了,但 program、integer 还是灰色,注释也不绿——不是语法包问题,是当前配色方案没定义 keyword.control.fortran 或 comment.fortran 这类 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"} - 保存后重新选一遍当前配色方案才能生效(Sublime Text 4 可实时预览,ST3 建议重启)
用 Intel Visual Fortran 或其他编译器?别硬写路径,靠环境变量驱动
如果你装的是 Intel Visual Fortran 2019 而不是 gfortran,shell_cmd 里直接写绝对路径极易失效——IVF 的环境依赖 ipsxe-comp-vars.bat 初始化,硬编码路径会跳过这步。
- Windows 下推荐做法:新建一个批处理文件(如
build_ivf.bat),内容为:@echo off call "E:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.245\windows\bin\ipsxe-comp-vars.bat" intel64 vs2017 gfortran %1 -o %~n1.exe
- 然后在
Fortran.sublime-build中改用:"shell_cmd": "build_ivf.bat \"$file\"" - 更稳妥的方式是把 IVF 的
bin目录加进系统PATH,并确保ipsxe-comp-vars.bat已被调用(可通过命令行先运行一次验证) - Linux/macOS 用户若用
ifort,同样不要写死路径,确保ifort --version在终端可用,再在shell_cmd中直接调用
source.fortran)、构建激活(手动切 Build System)、环境可达(gfortran 或 ifort 必须全局可调用)。任何一步漏掉,都会表现为“看起来像配置好了,但实际什么都没发生”。











