VSCode原生支持代码片段,无需插件即可配置:输入log按Tab生成console.log('');需在JavaScript语言片段中定义prefix为"log"、body为["console.log('$1');", "$2"],其中$1和$2为光标占位符。

VSCode 自带 Snippets + 几个关键插件,就能覆盖 90% 的重复代码生成场景,不需要写脚本、不依赖外部服务、也不用学新语法。
怎么让 log 输入完按 Tab 就变成 console.log('');
这是最基础也最容易被忽略的起点。VSCode 原生支持用户代码片段,无需装插件就能用。
- 打开命令面板(
Ctrl+Shift+P),输入并选择Preferences: Configure User Snippets - 选
JavaScript(或当前语言),会打开一个 JSON 文件 - 填入如下结构:
{
"Log to console": {
"prefix": "log",
"body": ["console.log('$1');", "$2"],
"description": "Insert console.log"
}
}
注意:$1 是第一个光标停留位置,$2 是第二个(按 Tab 切换)。别漏掉逗号,JSON 格式错误会导致整个文件失效。
为什么 rc 能一键生成 React 函数组件但你配不出来
常见失败原因是没处理好文件名变量和大小写转换——React 组件名必须大写,而 $TM_FILENAME 默认是小写的 user.js。
- 用
$TM_FILENAME_BASE获取不带后缀的文件名(如user) - 用正则替换实现首字母大写:
${TM_FILENAME_BASE/(.*)/${1:/capitalize}/} - 完整片段示例中,
prefix设为rc,body包含const ${TM_FILENAME_BASE/(.*)/${1:/capitalize}/} - 如果文件名含横线(如
user-list.js),需更复杂的正则,否则生成User-list会报错
Java: Generate toString() 命令为啥不出现
这个命令不是 VSCode 自带的,它来自 Java 扩展包,且只在 .java 文件里、光标位于类定义内部时才激活。
- 必须安装
Extension Pack for Java(含 Language Support for Java、Debugger for Java 等) - 确保文件后缀是
.java,且光标不在注释或方法体内,而在class XXX {的花括号范围内 - 如果用了 Lombok,
@ToString注解会让该命令灰掉——插件检测到已有 toString 实现,主动隐藏选项 - 生成结果默认用字符串拼接,不支持 Jackson 或 Gson 格式;如需 JSON 输出,得另装插件或手动改模板
AI 补全插件(Copilot / Tabnine / Fitten Code)真正省时间的用法
它们不是“输一半自动补全”,而是要配合具体动作才能触发高价值生成。
- 写函数前先写注释:输入
// 返回用户列表,按 name 排序,再按Ctrl+Enter(Copilot)或Alt+Enter(Tabnine),直接生成完整函数体 - 选中一段代码,右键选
Ask Copilot或Refactor with Tabnine,做重构而非补全 - Fitten Code 在 Vue 文件里对
<template>区域输入v-for后按Tab,会自动补全带:key的安全写法,比原生 Snippets 更懂框架约束 - 别让它生成整页组件——容易漏 props 类型或生命周期,建议限定在函数级或 hook 级生成
真正卡住效率的,往往不是“不会写”,而是“不确定该不该写”“写了怕不规范”“改了怕破坏上下文”。Snippets 解决确定性重复,AI 插件解决模糊意图,两者边界清晰,混用反而容易互相干扰。


















