Sublime多光标下需用${TM_SELECTED_TEXT}而非$1实现路由名独立插入,因$1同步填充而${TM_SELECTED_TEXT}按光标各自取选中文本;必须先选中路由名再触发snippet,且scope须设为source.vue meta.script.setup.js以适配Vue3 setup语法。

多光标选中路由名后,Snippet怎么才能把每个名字插进对应位置
直接用$1不行——它只生成一个占位符,所有光标位置都会同步填同一个值。要让每个路由名独立插入,得靠TM_SELECTED_TEXT变量。
在<content></content>里写${TM_SELECTED_TEXT},Sublime 会把当前光标所在位置的选中文本原样插入;多光标下,每个光标各自取自己选中的内容,互不干扰。
示例:你选中三行home、user、admin,按Ctrl + D激活多光标,再触发 snippet:
<route path="/${TM_SELECTED_TEXT}" component={${TM_SELECTED_TEXT}Page} />
结果就是三行独立的路由项,不是三行重复的home。
立即学习“前端免费学习笔记(深入)”;
- 必须先选中文本再触发 snippet,否则
TM_SELECTED_TEXT为空 - 不能和
$1混用——${TM_SELECTED_TEXT}不参与 Tab 跳转序列,它只读取当前选区 - 如果选区含空格或特殊字符,记得手动包裹引号或加转义,比如
path="/${TM_SELECTED_TEXT}"比path=${TM_SELECTED_TEXT}更安全
为什么在 Vue Router 4 的 setup script 里触发不了 route snippet
不是代码错,是<scope></scope>没对上。Vue 单文件组件的<script setup>块真实 scope 是source.vue meta.script.setup.js,不是source.js或source.vue。
输完 tabTrigger 按 Tab 没反应,大概率是 scope 太窄或太宽:
- 写成
source.js→ 只在 .js 文件生效,.vue 里完全无视 - 写成
source.vue→ 匹配<script>块,但不匹配<script setup> - 正确写法:
source.vue meta.script.setup.js(用Ctrl+Shift+P→Developer: Show Scope Name确认)
另外注意:setup script 中的路由定义常是const routes = [{...}]结构,snippet 内容得适配这种上下文,比如用{ path: '/${TM_SELECTED_TEXT}', component: () => import('./views/${TM_SELECTED_TEXT}.vue') },而不是 JSX 标签形式。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
如何让 snippet 插入后自动补全 import 行并保持顺序
Snippet 本身不支持跨行逻辑判断或自动排序,但可以靠$0和手动排版规避问题。
关键点:把 import 行放在 snippet 内容最前面,用$0停在 routes 数组末尾,方便你手动回车续写或粘贴:
import ${TM_SELECTED_TEXT}Page from '@/views/${TM_SELECTED_TEXT}.vue'
{
path: '/${TM_SELECTED_TEXT}',
name: '${TM_SELECTED_TEXT}',
component: ${TM_SELECTED_TEXT}Page
}$0
这样每次插入后,光标落在大括号外,你可以直接按 Enter 继续加新 route,或者 Ctrl+Shift+P → Sort Lines统一排序(需提前选中所有 route 对象)。
- 别试图用多个
$1控制 import 和 route 分开跳转——多光标下会混乱 - import 路径里的
@/views/必须和你项目实际路径一致,否则后续还得改 - 如果项目用 Vite 别名,确保 snippet 里写的路径能被解析,比如
@/pages/就不能硬写成@/views/
Tab 键跳过占位符时默认值不生效,怎么回事
常见原因是写了${1}却没给默认值。Sublime 要求带默认值才允许跳过编辑,否则会卡住或跳到下一个。
正确写法是${1:Home},不是${1};空默认值也得写成${1:}。
在路由场景下,这很关键:比如name: '${1:Home}',Tab 跳过就保留 Home;而name: '${1}'会导致光标卡在单引号里,无法继续。
-
${2:[]}适合 props 或 children 这类可选数组,默认空数组,跳过即用 - 不要用
${1:Home}${2:User}连写——XML 会把${2当未闭合标签报错,中间必须有空格或换行 - 所有
$符号都要用${n:default}或${TM_SELECTED_TEXT}格式,裸写$1会被当普通文本
真正麻烦的是 scope 和选区的耦合——多光标+TM_SELECTED_TEXT+默认占位符三者稍一错位,整段路由就废了,得重选重插。动手前先小范围试一次,比全量生成后再修快得多。


















