Sublime Text 的“不智能”反而利于编码肌肉记忆,因其不提供智能补全、跳转定义、实时类型检查等辅助功能,迫使开发者手动记忆函数拼写、参数顺序、语法结构,从而强化手写代码能力与底层语言直觉。

Sublime Text 不是轻量 IDE,它压根不提供智能补全、跳转定义、实时类型检查这些“拐杖”。用它写代码,等于主动把自动纠错和上下文提示关掉——这正是培养手写能力最有效的训练场。
为什么 Sublime 的“不智能”反而利于编码肌肉记忆
IDE 会帮你补全 console.log、推导变量类型、标出未声明的变量,但代价是:你不再需要记住函数拼写、参数顺序、括号配对规则。Sublime 没有这些,每次敲 fetch 都得自己确认第二个参数是 options 对象;写 for 循环时,let i = 0; i 必须完整打出,漏一个分号就报错。
这种“被迫完整”的过程,会反复强化语法结构在脑中的映射。不是靠工具提醒,而是靠肌肉形成条件反射。
- 没有悬浮提示 → 你必须知道
Array.prototype.map返回新数组,不修改原数组 - 没有自动 import 提示 → 你得清楚哪些 API 是全局的(
JSON.parse),哪些要手动引入(fs.readFile) - 没有错误预检 →
undefined is not a function这类运行时错误会真实出现,逼你读堆栈、定位调用链
如何用 Sublime 配置出“无辅助但可验证”的工作流
完全裸写容易挫败,关键是在“不代劳”和“可反馈”之间找平衡。重点不是禁用所有功能,而是只留验证型工具:
- 保留
Ctrl+B构建系统,但配置为调用node或python3直接执行,不加任何 lint 或 transpile 步骤 - 安装
SublimeLinter插件,但只启用基础语法检查(如eslint --no-eslintrc),禁用所有 auto-fix 规则 - 关闭
auto_complete和auto_complete_commit_on_tab,但保留tab_completion(仅对已输入前缀的本地变量补全) - 用
Ctrl+Shift+P→Developer: Show Scope Name确认当前作用域,避免 snippet 因scope不匹配而静默失效
这样,你写错 document.getElemenById 不会自动修正,但保存后立刻看到控制台报错——错误归错误,反馈是即时的。
手写能力真正卡点:不是语法,是边界与组合
新手常以为手写就是记 API,其实最难的是判断“该不该在这里用这个 API”,以及“怎么和其他逻辑咬合”。比如:
- 写
fetch时,你得自己决定要不要加try/catch,而不是等 IDE 在红波浪线下提示“Promise 可能 reject” - 处理表单提交,你要主动想到
event.preventDefault(),而不是依赖插件注入的模板代码 - 多个
setTimeout嵌套时,得靠自己意识到闭包陷阱,而不是靠类型系统标出i的值被覆盖
Sublime 不告诉你“该怎么做”,但它的空白编辑区和干净报错,会把你推到决策现场——那里才是手写能力的真实生长点。


















