jquery snippets是最稳的代码片段方案,它轻量无依赖,支持jqready、jqajax等常用片段;若需$.()方法智能提示,则必须搭配lsp、@types/jquery、tsconfig.json及三斜线引用。

jQuery Snippets 是最稳的代码片段方案
Sublime Text 本身不解析 jQuery 运行时行为,所谓“核心函数补全”实际指可触发常用写法的代码片段(snippets),不是 IDE 级别的参数推导。直接装名字带 jQuery 的插件,90% 只是硬编码旧 API,比如还提示 .live() 或 .die() —— 这俩在 jQuery 3.x 已移除,用就报错。
推荐只装 jQuery Snippets(作者 adamhathcock),它轻量、无依赖、即装即用:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Package Control: Install Package回车 - 等列表加载完,搜
jQuery Snippets,认准 GitHub star 最多、更新活跃的那个 - 新建一个
.js文件,右下角状态栏必须显示JavaScript(不是Plain text或HTML) - 输入
jqready+Tab→ 展开为$(function() { });;jqajax+Tab→$.ajax({});
想让 $().xxx 弹出方法列表?LSP + @types/jquery 才行
如果真需要输入 $(). 后弹出 fadeIn、prop 等方法并带参数说明,Snippet 不够用——得靠 TypeScript 类型系统驱动的语言服务器(LSP)。这不是“装个插件”能解决的,缺一不可:
- 先通过 Package Control 安装
LSP和LSP-typescript - 全局安装类型定义:
npm install -g @types/jquery - 项目根目录放一个空的
tsconfig.json(哪怕只写{}) - 在 JS 文件顶部加三斜线引用:
/// <reference types="jquery"></reference>(没这句,LSP 不加载 jQuery 类型) - 保存后等 1–2 秒,再试
$().,才会有完整方法提示
别碰 jQuery Completions、SublimeCodeIntel 这类老插件
它们基于 jQuery 1.x 的静态函数列表硬编码,现在基本失效:
- 输入
.后弹出已废弃的.live()、.die(),实际运行会报undefined - 对 ES6 模块语法(如
import $ from 'jquery')完全不识别 - 对 jQuery 3.x 新增的
.prop()行为差异毫无感知,补全内容和真实 API 不一致 - 容易拖慢编辑器响应速度,尤其打开大文件时卡顿明显
已装的直接进 Preferences → Package Control → Remove Package 卸载,比调试快得多。
手动加 snippet 补漏?scope 和 tabTrigger 必须严格匹配
自己写一个 jqgetjson 片段却没反应?90% 是这两处错了:
-
<tabtrigger>jqgetjson</tabtrigger>必须全小写、不能含空格或特殊字符(比如jq-get-json就不生效) -
<scope>source.js</scope>必须存在且正确(不是text.html.basic或空着) - 文件保存路径必须是
Packages/User/xxx.sublime-snippet,不能放在其他目录 - 改完后不用重启,但要确保当前文件语法是
JavaScript,否则 scope 不匹配
复杂点在于:jQuery 方法链式调用(如 $(...).find(...).on(...))的智能提示,Sublime 原生不支持,LSP 也只在类型定义完整、引用正确、文件被识别为 TS/JS 模块的前提下才稳定工作。别指望它像 VS Code 那样开箱即用。











