sublime text 不原生支持 f# 高亮和运行;需手动安装 fsharp 语法包实现高亮,配置 dotnet fsi 构建系统运行 .fsx 脚本,编译 .fs 文件则推荐用 dotnet cli 而非 fsc。

Sublime Text 能不能原生支持 F# 高亮和运行
不能。Sublime Text 默认不带 F# 支持,连 .fs 文件的语法高亮都没有,更别说运行了。它不像 VS Code 那样靠扩展自动拉取语言服务器,得手动装包、配构建系统,而且要注意 .NET 版本兼容性。
怎么让 .fs 文件有正确语法高亮
必须安装第三方语法包,推荐用 Package Control 安装 FSharp(作者是 fsharp-sublime):
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Install Package,回车 - 搜索
FSharp,选中安装 - 安装后打开任意
.fs文件,右下角点击语法名 → 选F#;或直接按Ctrl+Shift+P输入Set Syntax: F# - 如果高亮仍错乱,检查是否被其他插件覆盖(比如某些通用“OCaml”语法包会劫持
.fs后缀)
怎么在 Sublime 里一键运行 F# 脚本(.fsx)
得自己写构建系统,核心是调用 fsharpi(.NET Framework)或 fsharpc+dotnet run(.NET 5+)。但注意:fsharpi 已废弃,.NET 6+ 必须走 dotnet fsi。
- 菜单栏选
Tools → Build System → New Build System… - 粘贴以下内容(适配 .NET 6+):
{
"cmd": ["dotnet", "fsi", "$file"],
"selector": "source.fsharp",
"file_regex": "^(.*?):([0-9]+):([0-9]+):.*$",
"working_dir": "$file_path"
}
- 保存为
FSharp.sublime-build(路径默认是Packages/User/) - 再打开
.fsx文件,按Ctrl+B就能跑;错误行号会被正确跳转 - 如果报
command not found: dotnet,说明终端里dotnet不在 PATH,得改用绝对路径,比如/usr/local/share/dotnet/dotnet(macOS)或C:\Program Files\dotnet\dotnet.exe(Windows)
fsc 编译 .fs 文件失败的常见原因
想编译成可执行文件?别直接用 fsc,它只是编译器前端,不处理依赖和入口点。Sublime 里容易踩的坑:
-
fsc默认不生成可执行程序,得加--target:exe和--entrypoint:main(且要求main是[<entrypoint>]</entrypoint>函数) - 若项目含引用(如
FSharp.Core或 NuGet 包),fsc无法自动解析,必须手动加--reference参数——这几乎不可维护 - 真正靠谱的做法:用
dotnet new console -lang F#初始化项目,然后在 Sublime 里只负责编辑,构建交给dotnet build命令行 - Sublime 构建系统里硬塞一长串
fsc参数,后期改一个引用就得全重写
复杂点在于:F# 的项目结构、依赖管理和构建流程,和 Sublime 这种纯文本编辑器的定位天然不匹配。高亮可以凑合,运行脚本也还行,但真要工程化开发,终究得切到 dotnet CLI 或 VS Code + Ionide。










