必须手动配置Markdown All in One:禁用内置预览、开启数学公式与同步滚动、设置toc.autoUpdate和toc.levels、确保文件为.md且语言模式正确,否则90%功能失效。

VSCode 插件不是“锦上添花”,而是直接决定你写代码时要不要反复手动处理重复动作、要不要查文档配路径、甚至要不要重启编辑器——很多开发流程卡点,根源不在项目本身,而在插件没选对、没配好、没用到位。
怎么让 Markdown 目录自动同步且跳转可靠?
手动维护 [TOC] 很快就会失效,尤其当标题增删或层级变动后,目录不更新、点击跳转失败是常见现象。核心问题不是插件没装,而是配置和触发时机不对。
- 推荐插件:「Markdown All in One」(非「Markdown Preview Enhanced」,后者在 2026 年已出现 Webview 渲染兼容性问题)
- 必须开启的设置项:
markdown.extension.toc.autoUpdate设为true;markdown.extension.toc.levels按需设为2-6(Vue/React 文档常用 4 级) - 关键细节:目录只在保存文件后更新,
files.autoSave设为onFocusChange才能真正“实时”响应;若设为afterDelay,延迟期间修改标题可能被跳过 - 跳转失效常见原因:标题含特殊字符(如
`# API: init()`),应改用纯文本锚点,或启用插件的markdown.extension.toc.slugifyMode设为github
Vue 文件里为什么 Ctrl+Click 跳不到组件定义?
不是 Volar 没装,而是 Volar 和 TypeScript 的语言服务版本不匹配,或者项目根目录下缺少 tsconfig.json 或 volar.config.json 导致类型推导中断。
- Volar 必须配合
typescript使用,且 VS Code 内置 TS 版本不能高于项目node_modules/typescript版本(2026 年常见坑:VS Code 1.92 默认带 TS 5.5,但多数 Vue 3.4 项目仍用 TS 5.3) - 检查是否启用了 Volar 的「Take Over Mode」:命令面板输入
Volar: Switch to Take Over Mode,选中后重启 TS 服务(Developer: Restart Language Server) - 若使用
<script setup lang="ts"></script>,确保tsconfig.json中包含"compilerOptions": { "types": ["volar"] },否则类型定义无法注入 - 跳转失效还可能源于
shims-vue.d.ts缺失或路径错误,该文件必须位于项目根目录或src下,且内容含declare module '*.vue'
Python 自动化脚本总要手动找路径、改环境、调依赖?
「VSCode Auto Office」这类插件本质是把常用脚本封装成可点击节点,但它的可靠性取决于 Python 解释器绑定和工作区配置,而不是单纯安装插件。
- 必须先在当前工作区指定 Python 解释器:按
Ctrl+Shift+P→Python: Select Interpreter,选中含openpyxl、python-docx等包的环境(虚拟环境路径不能含中文或空格) - 插件预览脚本时会调用
python -m py_compile做语法校验,若报错ModuleNotFoundError,说明该解释器未安装对应包,需手动pip install - 树形结构中的脚本默认从
./examples/目录读取,若自定义路径,需在插件设置中修改autoOffice.examplePath,且路径必须为相对工作区根目录的 POSIX 格式(Windows 也用/,不用\) - 执行脚本前,插件会自动激活当前解释器对应的
venv,但不会自动cd到脚本所在目录——若脚本依赖同级资源文件,需在代码开头加os.chdir(os.path.dirname(__file__))
为什么自己写的插件调试时 command 不生效?
注册命令成功不代表能触发,最常漏掉的是 activationEvents 配置,VS Code 在插件未激活状态下根本不会加载你的 activate() 函数。
-
package.json中contributes.commands只声明命令,真正激活靠activationEvents:比如命令名为my-ext.doSomething,就得加"onCommand:my-ext.doSomething" - 若插件需监听文件打开才启动,别只写
"onLanguage:javascript",而应明确写"onLanguage:typescript"或"onLanguage:vue",因为 TS 和 Vue 的语言 ID 不同 - 调试时发现
vscode.commands.executeCommand('my-ext.doSomething')报错command 'my-ext.doSomething' not found,八成是插件没激活,看输出面板「Extension Host」日志里有没有Activating extension... - 本地调试用
F5启动 Extension Development Host 窗口时,务必确认左下角状态栏显示「Extension Development Host」,而不是主窗口——主窗口不会加载你正在调试的插件
插件简化流程的前提,是它真正嵌入到你的工作流上下文里:解释器、语言服务、文件系统路径、激活时机,缺一不可。少配一个字段,就可能让“一键插入”变成“手动复制粘贴”。


















