装错插件、语法模式不对、光标位置偏移是DocBlockr失效主因;必须安装社区维护分支sublimetext-docblockr,语法设为JavaScript等支持语言,光标置于函数定义行或其正上方空行,输入/**后按Enter才生效。

装错插件、语法模式不对、光标位置偏移——这三样占了 DocBlockr 失效的 90% 以上。 装对了就能用,根本不需要“一键”玄学操作。
怎么装才不白装
搜 DocBlockr 直接安装,大概率装的是作者已停更的旧版(作者不是 nikhilm),/** + Enter 就是摆设。
- 必须用 Package Control 安装社区维护分支:按
Ctrl+Shift+P(Mac 为Cmd+Shift+P),输Package Control: Install Package,搜sublimetext-docblockr(GitHub 仓库名) - 装完建议重启 Sublime Text,部分版本不重启不加载新插件
- 验证是否生效:新建
.js文件,写function foo(a, b) {},光标停在函数上方空行,输入/**后按Enter—— 若生成带@param的块,说明装对了
为什么 /** + Enter 没反应
不是插件坏了,而是环境没配准。右下角语法必须是 JavaScript、PHP、Python 等支持语言,不能是 Plain Text;光标必须在函数定义行(如 function bar() 或 def baz():)任意位置,或其正上方空行。
- 在函数体里、变量行、已有注释行、
<template></template>区域(.vue 文件中)都不触发 -
Enter是触发键,Tab只用于生成后跳字段,别混淆 - 检查是否有其他插件(如
Emmet)劫持了Enter行为,可临时禁用验证 - 进
Preferences → Package Settings → DocBlockr → Settings – User,确认"auto_indent": true没被设为false
@param 怎么自动带 {type} 占位符
默认模板不带类型占位符,@param 后面永远是空的。要让它自动填 {string} 或 {number},必须手动配模板。
- 进
Preferences → Package Settings → DocBlockr → Settings – User - 添加
"jsdoc_template"字段,例如 JavaScript 常用配置:
{
"jsdoc_template": [
"/**",
" * ${1:description}",
"${2: * @param {${3:type}} ${4:name} ${5:description}}",
"${6: * @return {${7:type}} ${8:description}}",
" */"
]
}
保存后,/** + Enter 就会带占位符,光标停在描述处,Tab 可顺次跳转。
箭头函数、TypeScript、解构参数为啥不识别
DocBlockr 不跑代码、不读类型系统,只靠正则粗略匹配形参名。所有依赖类型注解或复杂语法的写法,它基本都解析不了。
-
const fn = (a, b) => {}:原生不支持,得改写为function fn(a, b) {}或额外配jsdocs_extra_tags -
function f({ x }, [y] = []):可能只识别出{ x }和[y],不拆结构 -
def g(x: int) -> str:中的int和str不会被自动填进@param {int}或@return {str} -
function h(): ?string中的?string不会转成@return string|null
真正容易被忽略的是作用域(scope)匹配机制:Sublime 不看文件后缀,而是看光标所在位置的实际语法 scope。比如 .vue 文件里 <script></script> 区域能触发 DocBlockr,但 <template></template> 区域完全没反应——这不是插件问题,是 scope 没覆盖到。


















