script插件需手动启用终端模式(Ctrl+I或勾选Use Terminal)才能支持交互输入,且必须正确设置语言类型、解释器路径及文件后缀绑定,否则无法识别语法或执行脚本。

Atom 本身不带代码执行能力,所有“运行代码”操作都依赖插件,最常用的是 script。但直接按 Ctrl+I 或点菜单运行,大概率失败——不是 Atom 不行,而是环境、路径、语法识别没对上。
script 插件必须开终端模式才能输入交互式命令
script 默认用非交互式 shell 执行,所以 node 脚本能跑,但带 prompt()、input() 或需要用户输入的脚本会卡住或报错。必须手动启用终端:
- 运行前按
Ctrl+I(Windows/Linux)或Cmd+I(macOS),强制在 Atom 内置终端中执行 - 或进
Settings → Packages → script → Settings,勾选Use Terminal(注意不是Use Script Panel) - 开启后终端窗口复用,但当前工作目录不会自动切到文件所在路径——如果报
Cannot find module 'xxx',先在终端里手动cd到对应目录再运行
SQL 文件不能直接 run,得配外部命令或换插件
script 对 .sql 文件默认调用 sql 命令,但系统一般没这个可执行文件。你得手动配置:
- 装好
language-sql和script后,在script设置页找到Command配置项 - 根据数据库类型填具体命令,例如 MySQL:
mysql -u root -p mydb < <file>;PostgreSQL:psql -d mydb -f <file> - 更省事的方案是换用
atom-sql-runner:装完后在设置里填 host/port/database/user/password,之后按Ctrl+Alt+R就直接查,结果出在底部面板 - 注意:SQL 查询结果若超长,Atom 渲染会卡顿,建议加
LIMIT或清空输出面板再查下一条
snippet 触发不了?大概率是 scope 不匹配
写完 snippets.cson 却按 rfc + Tab 没反应,90% 是 scope 错了。Atom 的 snippet 只在声明的语法作用域内生效:
- 确认当前文件右下角显示的是
JavaScript,不是Plain Text;如果是 JSX,scope 很可能是.source.js.jsx,不是.source.js - 查真实 scope:按
Ctrl+Shift+P→ 输入Editor: Log Cursor Scope,看输出的第一项(如source.js.jsx) - 在
snippets.cson中把 key 改成'.source.js, .source.js.jsx'(逗号后有空格),别用*全局匹配 -
body里不能有非法缩进或空行,否则 Atom 解析失败,$1不生效;改完必须按Ctrl+Shift+P→Window: Reload,不是关再开
快捷键失效时,优先查 grammar 和 keymap 冲突
比如 Ctrl+/ 注释不了、Ctrl+Shift+D 复制不了整行,不是快捷键丢了,而是底层条件没满足:
- 注释失效:右下角状态栏看 grammar 是否为
JavaScript (Babel)等支持注释的语言,不是Plain text;块注释/* */默认没绑定快捷键,得自己在keymap.cson里加:'.source.js': 'ctrl-alt-/': 'editor:toggle-block-comment' - 复制整行失效:确保光标处于“未选中”状态再按
Ctrl+Shift+D;如果已选中文本,它会复制所选内容,不是整行 - 快捷键被插件覆盖:按
Ctrl+.(Win/Linux)或Cmd+.(macOS)打开 Key Binding Resolver,输目标快捷键,看实际触发了哪个命令
真正卡住人的从来不是功能有没有,而是 Atom 把“环境继承”“scope 匹配”“grammar 绑定”这些隐性条件藏得太深——每次以为是插件问题,最后发现是终端没开、scope 写窄了、或者 grammar 没切对。

















