Notepad++一键运行Smalltalk脚本_动态语言环境配置指南【实操】

P粉328763957

P粉328763957

2026-07-06

838人浏览

原创

notepad++无法直接运行smalltalk,只能通过nppexec调用pharo cli执行脚本;必须指定镜像路径、使用--eval或--script参数,并确保脚本为合法表达式或适配无头模式,否则会因路径、编码、缓冲或gui依赖等问题失败。

notepad++一键运行smalltalk脚本_动态语言环境配置指南【实操】

Notepad++ 本身不支持 Smalltalk 解释器,也没有内置的 Smalltalk 运行时;所谓“一键运行”,本质是调用外部 Smalltalk 环境(如 Pharo、Squeak 或 GemStone)执行脚本文件——这和 Python/Perl 的做法逻辑一致,但 Smalltalk 的启动方式、工作目录、参数传递和脚本格式完全不同,直接套用 Python 配置会失败。

Pharo 脚本无法被 pharo.exe 直接执行?必须用 --no-quit --eval

Pharo 不像 Python 那样能直接运行 .st 文件:pharo image.st script.st 是无效命令。Pharo 启动时默认加载镜像(.image),脚本需通过 --eval 参数注入表达式,或用 --no-quit 防止立即退出。

  • 正确写法(推荐):pharo "$(CURRENT_DIRECTORY)\your.image" --no-quit --eval "$(FULL_CURRENT_PATH)" ——但前提是你的 .st 文件内容是合法的 Smalltalk 表达式(如 'Hello' printNl.),且不含类定义或方法编译逻辑
  • 更稳妥的做法:把脚本内容封装成可执行 block,例如 [ 'Hello world' printNl ] value.,否则 --eval 会因语法错误中止
  • 如果脚本含多行、类定义或需要访问 IDE 环境,--eval 不适用,必须改用 --script 模式(仅 Pharo 10+ 支持),命令为:pharo "$(CURRENT_DIRECTORY)\your.image" --script "$(FULL_CURRENT_PATH)"
  • $(CURRENT_DIRECTORY) 必须与 .image 文件同目录,否则 Pharo 找不到镜像;不能只写 pharo your.image —— Notepad++ 不继承 CMD 的当前路径,必须显式指定完整路径

Smalltalk 脚本里 Transcript show: 没输出?终端编码和缓冲是关键

Pharo 默认将 Transcript show: 输出重定向到图形界面的 Transcript 窗口,命令行下不可见;若你期望控制台打印,得改用 Stdout print: ...; cr.,且需确保终端支持 UTF-8。

最新版本ArcGIS For Android Eclipse环境配置 中文WORD版
最新版本ArcGIS For Android Eclipse环境配置 中文WORD版

ArcGIS for Android SDK 目前最新版本为10.2.5 从此版本开始ESRI不在提供Eclipse的插件支持,官方的帮助也针对于Android Studio的支持;本文档主要讲述的内容是最新版本ArcGIS For Android Eclipse环境配置;感兴趣的朋友可以过来看看

下载
  • 在 NppExec 命令前加 cmd /c chcp 65001 >nul &&,否则中文会变成 \xe4\xbd\xa0 类似乱码
  • Pharo 启动后可能有 1–2 秒延迟才真正 ready,直接 --eval 可能报错 UndefinedObject>>doesNotUnderstand: —— 加 --no-quit 并在脚本末尾加 Delay waitForSeconds: 0.5. 可缓解
  • 避免在脚本中调用 World doOneCycle 或 GUI 相关方法,它们依赖图形环境,在无头模式下会 crash

为什么 $(FILE_NAME) 会导致 File not found?路径变量必须匹配 Smalltalk 加载逻辑

Smalltalk 镜像启动后,当前工作目录默认是镜像所在目录,不是脚本所在目录。如果你在脚本里用 FileStream fileIn: 'config.st',它会去镜像目录下找 config.st,而不是脚本目录。

  • 永远用 $(FULL_CURRENT_PATH) 传给 --eval--script,它提供完整路径,避免空格/中文路径被截断
  • 不要用 $(FILE_NAME)$(NAME_PART) —— 它们不含路径,Pharo 根本不知道你在哪打开的文件
  • 若脚本需读取同目录其他文件(如 JSON、CSV),应在脚本内用 FileLocator home child: 'data.csv' 或显式拼接:FileLocator imageDirectory parent / 'data.csv'
  • Pharo 10+ 支持 FileLocator workingDirectory,但该目录由启动命令的 cd 决定,Notepad++ 不自动切换,所以最稳的方式仍是把所有依赖文件放在镜像同目录

Squeak 或 GemStone 能否同样配置?路径和参数差异极大

不能复用 Pharo 的命令模板。Squeak 启动命令是 Squeak.exe your.image,没有 --script 参数;GemStone 是服务型架构,根本不适合“一键运行单文件”场景。

  • Squeak:只能靠修改 .image 启动脚本(MainApp class>>#startUp),或使用 --no-user-display + 自定义 startup 方法,复杂度远高于 Pharo
  • GemStone:需先启动 gs64bit server,再用 topaz client 连接执行,Notepad++ 无法完成端到端流程
  • 结论:只有 Pharo(v9+)具备较合理的 CLI 脚本支持;其他 Smalltalk 实现要么不维护 CLI,要么文档缺失,强行配置大概率卡在权限、路径或版本兼容上
Smalltalk 不是解释型脚本语言,它的“运行”本质是启动一个已序列化的对象世界,再向其中注入行为。这个前提决定了:任何脱离镜像、忽略工作目录、硬套 Python 思路的配置,都会在第二步就失败。真正可靠的方案,是用 Pharo 自带的 pharo-launcher 管理镜像,再在 Notepad++ 中严格绑定镜像路径与脚本路径——少一步,就多一个 MessageNotUnderstood

相关专题

更多
notepad++官网
notepad++官网

notepad++提供了许多强大的功能和工具,使其成为许多程序员和开发人员的首选工具。本专题为大家提供notepad++官网的相关文章,大家可以免费体验。

2023.08.04

2240

7

notepad++使用教程
notepad++使用教程

notepad++适合处理代码编辑、文本替换、格式查看和批量查找等日常任务。本专题围绕下载安装、界面设置、文件编辑、查找替换、插件使用和常见问题处理展开。

2025.08.01

3302

38

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

3

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

1

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

3

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

2

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

0

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

0

10

火山引擎对象存储使用教程
火山引擎对象存储使用教程

火山引擎对象存储适合用于网站图片、视频文件、备份数据、静态资源和应用附件管理。本专题整理TOS控制台入口、存储桶创建、地域选择、权限设置、文件上传、访问链接生成、CDN加速、费用查看和常见上传或访问失败问题,帮助用户快速掌握对象存储基础操作。

2026.08.04

1

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Notepad++ 官方插件文档
Notepad++ 官方插件文档

共0课时 | 0人学习

Notepad++ 官方用户手册
Notepad++ 官方用户手册

共0课时 | 0人学习

极客学院Ruby基础视频教程
极客学院Ruby基础视频教程

共22课时 | 5.1万人学习