sublime text 不能配置 smalltalk 运行环境,仅支持语法高亮与文本编辑;所有“运行”实为调用外部 pharo 命令执行脚本,不具交互式开发能力。需安装 sublime-smalltalk 插件并绑定 .st 后缀,构建系统仅能调用 pharo cli 执行 eval 脚本,无法 halt、inspect 或热重定义。

Sublime Text 不能配置 Smalltalk 运行环境,也不支持调试、对象探查或热重定义——它只能做 .st 文件的语法高亮和文本编辑。 所有“运行”操作本质是调用系统已安装的 pharo 命令执行脚本,和在终端里敲 pharo my.image eval --save '42 factorial' 完全等价。
怎么让 .st 文件正确高亮?
Sublime 默认不识别 .st 后缀,打开就是 Plain Text;必须手动安装语法包并绑定作用域:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Package Control: Install Package,回车 - 搜索并安装
Smalltalk(作者:guillermooo,GitHub 仓库名sublime-smalltalk) - 安装后打开任意
.st文件,点击右下角Plain Text→ 选Smalltalk - 再点右下角 →
Open all with current extension as…→ 选Smalltalk,此后所有.st文件自动高亮 - 若高亮异常(如
ifTrue:没变色),按Ctrl+Shift+P→Show Scope Name,光标处应显示类似keyword.control.smalltalk;若为text.plain,说明语法包未生效或被其他插件覆盖
为什么 Ctrl+B 无法“运行” Smalltalk?
因为 Sublime 没有嵌入 VM、不加载 .image、不维护活对象图——所谓“构建系统”只是外壳调用:
Dingtalk CLI SKILL / 钉钉 dingding / dingtalk dws skill — 管理钉钉(DingTalk)产品(AI 表单、日历、联系人、机器人、待办事项、审批、考勤、报表等)
-
Ctrl+B调用的是外部pharoCLI,不是在 Sublime 内启动镜像或交互式会话 - 必须先确保系统 PATH 中有可用的
pharo命令(终端执行pharo --version应成功) - 构建系统(
.sublime-build)只能传入脚本内容到eval,例如:pharo my.image eval --save 'MyClass compile: ''^42''' - 无法 halt、无法 step-into、无法 inspect 对象——这些能力依赖 Pharo IDE 的完整运行时状态,Sublime 不提供
- 如果构建后无输出或报错
command not found,优先检查pharo是否在 PATH,而不是调试构建文件
常见错误现象与对应排查点
实际使用中高频出问题的地方集中在三类场景:
-
.st文件打开仍是白色:右下角显示Plain Text→ 点击后没选对语法;或装了插件但未重启 Sublime;或多个语法插件冲突(如同时启用了其他 Smalltalk 相关未维护包) - 关键字高亮错乱(比如
Object subclass:中subclass:被当作文本):Show Scope Name查到 scope 是entity.name.function.smalltalk,但当前color_scheme未定义该 scope 颜色,导致回落成默认色 - 构建系统静默失败(按
Ctrl+B没反应、无弹窗、无终端输出):构建文件 JSON 格式错误(中文引号、多逗号、Tab 缩进)、selector缺失或写错(必须是"selector": "source.smalltalk")、保存路径不在Packages/User/下 - 执行脚本时报
Could not find image file:构建命令里没指定完整路径的.image,或working_dir设置不当,导致相对路径解析失败
真正容易被忽略的是:Smalltalk 的动态性(方法重定义、对象实时修改、Inspector 探查)完全依赖镜像内存状态,而 Sublime 是纯静态文本层。你永远无法在 Sublime 里右键一个 Array new 然后 “inspect it”——那不是配置不到位,是模型根本不同。










