Script插件需手动启用终端模式才能交互运行:按Ctrl+I/Cmd+I或勾选Use Terminal;语言识别仅依赖文件后缀或状态栏设置;解释器路径需在设置中填绝对路径;SQL/Node watch等特殊场景需额外配置命令;所有配置修改后须完全退出Atom再重启生效。

Script 插件必须手动启用终端模式才能交互运行
Atom 本身不执行代码,script 插件默认用非交互式子进程调用解释器,所以任何含 input()、read -p 或 prompt() 的脚本都会卡住、跳过或静默失败。这不是 bug,是设计如此。
必须显式开启终端支持:
- 运行前按
Ctrl+I(Windows/Linux)或Cmd+I(macOS),强制在 Atom 内置终端中执行 - 或进
Settings → Packages → script → Settings,勾选Use Terminal(注意不是Use Script Panel) - 开启后终端窗口复用,但当前工作目录不会自动切到文件所在路径——若报
Cannot find module 'xxx'或No such file or directory,得先在终端里手动cd进去
语言识别不靠内容,只认后缀或右下角手动设置
script 插件不解析文件内容,也不读 shebang 行(如 #!/usr/bin/env python3),它只看两点:文件扩展名(如 .py)、或右下角状态栏显示的语言标识。文件叫 deploy(无后缀)或 build(没写 .sh),它就当纯文本处理,Ctrl+Shift+B 根本不响应。
解决方法:
- 临时改语言:按
Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS),输入Python、Bash、JavaScript回车 - 永久绑定后缀:在
script设置页填File Extensions,如py,sh,js,ts(全小写,SH在 macOS/Linux 下无效) - 已打开文件但显示
Plain Text?直接点状态栏语言名手动选,别等自动识别
“command not found” 不是插件问题,而是 PATH 或解释器路径没对上
报 python: command not found 或 node: command not found,90% 是因为 script 默认调系统 PATH 里的命令,而你的环境可能:
- macOS 新系统只有
python3,没建python软链接 - 用了
pyenv/conda/Homebrew,解释器不在默认 PATH 中 - Windows 注册表残留旧版 Python(比如 Python 2.7 的
python.exe被优先匹配)
别动系统软链接,直接在 script 设置里填绝对路径:
- macOS 系统自带:
/usr/bin/python3 - Apple Silicon Homebrew:
/opt/homebrew/bin/python3 - Intel Homebrew:
/usr/local/bin/python3 - Windows:
C:/Users/you/AppData/Local/Programs/Python/Python311/python.exe(反斜杠写成/或\) - pyenv 用户:
/Users/you/.pyenv/shims/python(注意~不展开,必须写全路径)
验证路径是否有效:终端执行 which python3 或 type -p python3,复制输出结果粘贴过去。
SQL 文件、带 watch 的 Node 脚本等特殊场景需额外配置
script 对 .sql 文件默认尝试调 sql 命令,但系统一般没这个可执行文件;对 node --watch 这类长时进程,它只做一次 exec,启动后立刻退出。
应对方式:
- SQL 执行:在
script设置页的Command配置项填具体命令,例如 MySQL:mysql -u root -p mydb < <file>;PostgreSQL:psql -d mydb -f <file> - Node watch 模式:改用终端手动跑
nodemon index.js(Windows/macOS/Linux 均需提前npm install -g nodemon);或写封装脚本,再让script调它 - TS 文件想用
ts-node:不能只填ts-node,得带占位符,如ts-node --esm "$1"
所有配置修改后,必须完全退出 Atom(不只是关窗口),再重启才生效——这点容易被忽略,改完发现没用,大概率是没彻底退出。

















