ctrl+shift+v没反应是因文件语言模式非markdown或后缀非.md/.markdown;离线预览依赖webview组件,导出pdf需预装chromium、插件及本地css字体路径,公式/mermaid需离线安装markdown preview enhanced并配置本地katex和mermaid-cli。

离线环境下 VSCode 无法实时预览或导出 PDF,不是设置没配对,而是缺少运行时依赖 —— 预览靠 WebView 渲染,导出靠外部工具链,两者都需联网首次安装或离线补全。
为什么 Ctrl+Shift+V 按了没反应(离线)
VSCode 内置 Markdown Preview 是纯前端实现,不依赖网络,但前提是:当前文件语言模式必须是 Markdown(右下角显示为“Markdown”,不是“Plain Text”或“JSON”);且文件后缀为 .md 或 .markdown。
- 离线时常见误判:打开一个无后缀的文档或 .txt 文件,右下角显示 Plain Text → 即使按
Ctrl+Shift+V也无响应 - 解决方法:点击右下角语言标识 → 输入
Markdown→ 选中它;或快捷键Ctrl+K M后输入markdown - 若仍无效,说明 VSCode 安装包本身缺失 WebView 组件(极少见),需重装完整版而非“light”版
离线导出 PDF 失败的三个硬性缺口
所谓“一键导出 PDF”,本质是调用 markdown-pdf 插件启动一个本地 Chromium 实例做 HTML → PDF 渲染。离线时失败,90% 出在以下任一环节缺失:
-
markdown-pdf插件未提前安装(.vsix 离线包未导入) - 系统未预装
chromium或electron运行时(插件依赖它们启动渲染进程) -
markdown-pdf.cssPath指向的 CSS 文件路径是相对路径或不存在(离线环境不支持 HTTP 加载 CSS)
验证方式:打开 VSCode 内置终端,执行 npx markdown-pdf --version;无输出即代表插件底层命令不可达。
离线预览公式、Mermaid、表格对齐怎么办
VSCode 内置预览器不解析 $$E=mc^2$$、```mermaid 或自动对齐表格 —— 这和是否联网无关,是功能限制。离线时更不能指望它突然支持。
- 公式:必须用
markdown-preview-enhanced(推荐离线安装其 .vsix),它自带 KaTeX;但注意:KaTeX 的字体资源需提前下载并配置markdown-preview-enhanced.katexPath为本地绝对路径 - Mermaid:同上插件支持,但
mermaid-cli二进制需离线部署到系统 PATH,否则预览时空白 - 表格对齐:内置预览器完全忽略分隔行写法(如
|:---|---:|);唯一解法是手动选中整张表 + 安装Markdown All in One插件(离线安装 .vsix),再用Ctrl+Shift+P→Markdown: Format table
字体乱码、中英文挤在一起(离线最易被忽略)
这不是预览器 bug,而是离线时 CSS 字体声明失效后,系统 fallback 到默认字体栈,而多数 Linux/macOS 默认不带等宽中文字体。
-
markdown-pdf.fontFamily必须设为已安装的中文字体名,如"Noto Sans CJK SC", "sans-serif";Windows 可用"Microsoft YaHei",但必须加单引号包裹 - 代码块字体要单独配:
markdown-pdf.codeFontFamily推荐"Fira Code", "monospace",否则中文代码注释会错位 - 改完配置后必须**完全退出 VSCode(不只是关闭窗口)再重启**,否则字体度量缓存不刷新,看着对齐实则光标悬空
真正难的不是让一次预览看起来整齐,而是确保所有离线机器上,font-family 解析结果一致 —— 这要求字体文件必须预装,不能靠网络加载。











