Jumper - VSCode 全局标记跳转插件
介绍
Jumper 是一款基于 #to:xxx / #tag:xxx 自定义标记的跨文件极速跳转工具,核心采用工作区启动预缓存机制,所有跳转直接读取内存,告别大项目扫描卡顿。
支持一键插入标记、Ctrl点击快速跳转、Alt快捷键唤起全局搜索面板,一行多标记、多文件匹配场景全部友好适配。
核心特性
1. 双向标记映射规则
任意文件、注释、行内文本均可写入标记,两者互相跳转:
#tag:demo → 全局检索所有 #to:demo
#to:demo → 全局检索所有 #tag:demo
- 仅1处匹配:直接跳转,自动居中目标代码行
- 多处匹配:弹出选择列表,展示文件路径+行号+完整代码行
示例代码:
// #to:loginBtn
function login() {}
// #tag:loginBtn
const btn = document.getElementById('login');
<!-- #tag:header -->
<div class="header"></div>
<span>入口 #to:header</span>
2. Alt 快捷键(全局搜索面板)
| 快捷键 |
行为 |
Alt + M |
1. 首次按下:光标插入 #to:,光标停在冒号后直接输入标签名 2. 400ms内再次按下:撤销刚插入的文本,直接打开全局标签搜索面板 |
Alt + N |
1. 首次按下:光标插入 #tag:,光标停在冒号后 2. 快速二次按下:唤起全局搜索面板 |
优化改动:不再判断当前行是否存在标记,无论有无标签都会打开全局检索框,支持实时过滤所有项目内 to/tag。
3. 全局搜索面板(仿 Ctrl+Shift+P 交互)
Alt 快捷键二次按下弹出统一搜索窗口,每条条目展示三段信息:
- 主标题:
to:name / tag:name(可搜索标签名)
- 描述:当前行完整文本,超长自动截断省略号
- 详情:文件相对路径 + 行号(可搜索文件名筛选)
支持模糊匹配标签、代码文本、文件路径,选中回车直接跳转对应文件行。
4. 极速预缓存(解决卡顿核心)
- VSCode 加载插件后延迟后台异步扫描全项目,分批次读取文件不阻塞编辑器
- 全部标签映射存入内存,后续所有跳转零文件IO、毫秒级响应
- 文件修改/重命名/删除自动清空缓存,保证标记数据实时准确
- 提供手动重建缓存命令,批量修改标记后一键刷新索引
- 支持开关预缓存,超大项目可关闭避免启动占用IO
5. 高度自定义配置项
可在 settings.json 自由调整扫描规则、阈值、快捷键行为:
// 仅解析指定后缀文件,空数组=全部文件
"jumper.includeExts": [".ts", ".js", ".vue", ".html", ".md"],
// 额外自定义排除目录(glob格式)
"jumper.extraExclude": ["assets/**", "logs/**", "public/**"],
// 超过该大小(KB)的文件跳过解析,防止超大日志卡顿
"jumper.maxFileSizeKB": 500,
// Alt快捷键二次按下等待超时毫秒
"jumper.triggerWindowMs": 400,
// 插件启动时自动预缓存全部标签
"jumper.enablePreCache": true
默认自动排除目录:node_modules/**, dist/**, build/**, .git/**, out/**, coverage/**
6. 其他实用功能
- 标记名自动下划线高亮,鼠标悬浮提示可 Ctrl 点击跳转
- 二进制、打包产物、超大文件自动过滤
- 缓存丢失自动兜底重建索引,功能永不失效
快捷键总览
| 快捷键 |
功能 |
Alt + M |
插入 #to: / 唤起全局标签搜索面板 |
Alt + N |
插入 #tag: / 唤起全局标签搜索面板 |
Ctrl + 鼠标左键 |
点击标签名称,直接跳转对应反向标记 |
命令面板(Ctrl+Shift+P)
Jumper 手动重建全部标签缓存:强制重新扫描项目,刷新标签索引
性能优化机制
- 启动预缓存:后台分批次扫描,一次性构建全量标签映射
- 多层过滤:后缀白名单、目录黑名单、超大文件截断三重过滤,减少待读取文件
- 内存复用:缓存构建完成后,所有跳转直接读取内存,无磁盘扫描
- 自动失效机制:文件变更自动清空缓存,避免旧标记残留
- 兜底容错:缓存为空时自动执行全量重建,保证功能可用
注意事项
- 标签命名仅支持字母、数字、下划线:
#to:user_info、#tag:api_01
- 打包产物、日志、二进制文件默认不解析,可通过配置修改扫描范围
- 超大仓库若启动卡顿,可关闭
jumper.enablePreCache,仅在跳转时扫描
- 批量新增/删除大量标记后,建议执行「手动重建缓存」命令刷新索引
License
MIT