<p>F# 在 Sublime Text 中需手动安装 fsharp-sublime 语法包并配置 dotnet fsi 构建系统才能实现高亮与运行;.fsx 是唯一支持直接执行的脚本格式,且依赖 .NET SDK 6.0+ 和正确环境路径。</p>

F# 在 Sublime Text 中无法开箱即用,必须手动安装语法包 + 配置构建系统,否则打开 .fs 或 .fsx 文件就是纯文本,没有高亮、不能运行、也无错误提示。
怎么让 .fs 和 .fsx 文件正确高亮
Sublime Text 默认完全不识别 F# 语法,.fs 文件连基础着色都没有。必须装第三方语法定义包:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Install Package回车 - 搜索
FSharp,选作者是fsharp-sublime的那个安装(别选 OCaml 或通用 ML 类插件) - 安装后打开任意
.fs或.fsx文件,右下角点击语法名 → 手动选F#;或按快捷键Ctrl+Shift+P输入Set Syntax: F# - 如果高亮仍错乱(比如字符串不着色、
let关键字没颜色),检查是否被其他插件劫持:关掉所有非必要插件,再试
为什么 dotnet fsi 是唯一可行的运行方式
fsharpi 已在 .NET 6+ 中彻底弃用,dotnet fsi 是当前唯一支持的交互式执行入口。常见错误如 The term 'fsharpi' is not recognized 或构建后空白输出,基本都源于没装对 SDK 或路径没配对:
- 先确认已安装 .NET SDK 6.0+(不是 Runtime),终端运行
dotnet --version必须返回类似8.0.400的版本号 - 运行
dotnet --list-sdks,输出中应含fsharp字样(例如8.0.400 [/usr/local/share/dotnet/sdk]) - Windows 用户注意 PowerShell 执行策略:若报错“无法加载文件”,临时执行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -
.fsx是唯一能直接运行的脚本格式;.fs文件需编译进项目,不适用于构建系统一键执行
如何配置 Sublime 的 F# 构建系统(Windows/macOS/Linux 区分写法)
核心是新建一个 .sublime-build 文件,告诉 Sublime 调用 dotnet fsi 执行当前文件。路径在 Tools → Build System → New Build System…:
- Windows 用户用
cmd模式:{ "cmd": ["dotnet", "fsi", "$file"], "selector": "source.fsharp", "shell_cmd": null, "working_dir": "$file_path" } - macOS/Linux 用户用
shell_cmd:{ "shell_cmd": "dotnet fsi "$file"", "selector": "source.fsharp", "working_dir": "$file_path" } - 关键点:
$file必须带引号(尤其路径含空格时),working_dir设为$file_path才能正确解析相对引用 - 保存为
FSharp.sublime-build,之后按Ctrl+B(Win)或Cmd+B(macOS)即可运行当前.fsx
容易被忽略的兼容性细节
很多问题卡在“看起来装了,但功能不全”——F# 插件和构建系统本身不提供类型检查、跳转或补全,它只负责高亮和执行。真正影响体验的其实是底层链路是否通畅:
-
FSharp语法包不启动任何后台服务,它只是静态着色规则;想有类型提示或错误诊断,得靠外部工具(如 VS Code 的 Ionide + FSAC) - Sublime 没有语言服务器协议(LSP)原生支持,所以即使装了
SublimeText-Typescript这类插件,F# 也没有对应成熟替代品 - 构建系统里硬编码
dotnet路径(比如C:\Program Files\dotnet\dotnet.exe)会导致跨机器失效;一律用$file和环境 PATH 更可靠 - 如果
.fsx里用了 NuGet 包(如#r "nuget: FSharp.Data"),确保dotnet能联网并访问 nuget.org,离线环境会静默失败

















