vscode 一键生成 vue3+ts+setup 模板依赖用户代码片段(vue.json)正确配置:必须确保右下角 languageid 显示为 vue,json 结构合法(body 为字符串数组、引号转义正确、无语法错误),prefix 触发词匹配,且 $1–$n 占位符连续唯一,配合 $tm_filename_base 等变量实现动态填充。

VSCode 插件本身不直接“一键生成开发配置模板”,真正起作用的是用户代码片段(Snippets)+ 语言关联 + 正确的 JSON 配置。插件如 Vetur 或 Vue - Official 只是预置了部分片段,但定制权在你手上——改错一个字段,prefix 就失效,body 缺引号就报红,$1 写成 $0 光标跳转就乱套。
vue.json 中 prefix 不生效?检查 languageId 绑定是否匹配
很多人把片段写进 vue.json,却在 .vue 文件里输 v3 没反应。根本原因是 VSCode 并不靠文件后缀识别语言,而是靠 languageId —— 即当前编辑器右下角显示的 “Vue” 是否真实激活。
- 打开一个
.vue文件,看右下角状态栏:必须显示Vue(不是HTML或Plain Text),否则vue.json不加载 - 如果显示不对,点击它 → 选择
Configure File Association for '.vue' → Vue -
vue.json只对 languageId =vue生效;若你用的是typescriptreact或html语言模式,片段永远不会触发
body 里引号、换行、转义写错,会导致整个片段加载失败
VSCode 加载 vue.json 是严格 JSON 解析,任何语法错误都会静默丢弃该片段(不会报错,但也不出现提示)。
-
"<script setup lang='\"ts\"'>"</script>中的双引号必须用\"转义,写成"<script setup lang="ts">"</script>直接无效 - 数组元素不能省略逗号,末尾多一个逗号(如最后一行加
,)在某些 VSCode 版本里会解析失败 - 空行要用
""表示,不能留空白字符串或直接换行 - 别用中文全角符号,比如
“”或‘’,只认 ASCII"和'
光标跳转顺序错乱?$1 $2 $3 必须连续且唯一
$1 是第一个停靠点,$2 是第二个……VSCode 按数字升序跳转。一旦漏掉某个编号,或重复使用同一编号,跳转链就断了。
- 不要写
$1、$3、$2—— 跳转顺序按数字排,不是按出现顺序 - 不要写两个
$1,否则第二次 Tab 会卡在第一个位置不动 - 想让光标最后停在
后面?加个$4在最后一行即可,但必须保证前面是$1、$2、$3 - 支持
$0表示最终停留位(Tab 走完所有$1~$n后停在这),但不能和$1等混用
想让模板带组件名或自动 import?得用变量,不是硬编码
纯静态模板每次都要手动改名字、加 ref、补 defineProps。真正提效的是用 VSCode 内置变量动态生成。
-
$TM_FILENAME_BASE:当前文件名(不含 .vue),适合填name: '$TM_FILENAME_BASE' -
$1放在<template></template>里,$2放在<script setup></script>开头,$3放在<style></style>里 —— 这样 Tab 三次就能覆盖三块区域 - 想默认引入
ref?在body第二行写import { ref } from 'vue';,再加const count = ref<number>(0);</number>到$2位置 - 注意:变量名如
$TM_FILENAME_BASE必须全大写+下划线,写成$tm_filename_base就不生效
最常被忽略的其实是 languageId 绑定和 JSON 语法校验 —— 90% 的“片段不触发”问题都卡在这两步。写完 vue.json 后,务必打开一个真实 .vue 文件,确认右下角是 Vue,再 Ctrl+Shift+P → “Developer: Toggle Developer Tools” 看 Console 有没有 snippet 加载警告。没有报错,才说明它真正在工作。











