vs code 原生不支持 pdf 内联预览,必须安装 pdf viewer(作者 tomoki1207)插件;其他同名插件已停更、下架或存在风险;安装后需全量重启、确保启用、路径为纯英文且文件无 drm 或扫描版;关闭 editor preview 模式可实现双击常驻打开。

VS Code 原生不支持 PDF 内联预览,双击 .pdf 文件只会调用系统默认阅读器或报错“无法打开此文件”——想在编辑器里直接滚动、缩放、搜索,必须装插件,且只推荐 PDF Viewer(作者 tomoki1207)这一款。
为什么必须选 PDF Viewer(而非 vscode-pdf 或 PDF)
名字相近的插件有明显风险:vscode-pdf 是旧名,已下架;PDF(by chenxsan)停更多年,加载 >20MB 文件就卡死;vscode-pdfviewer 是非官方镜像,更新滞后,常触发签名警告。只有 PDF Viewer 持续维护、基于最新 PDF.js、无广告、无捆绑行为。验证方式很简单:安装后打开 Extensions 面板,搜 PDF Viewer,右下角显示 Enabled 且发布者字段明确为 tomoki1207 才算对。
安装后右键没 Open Preview?先确认这三件事
常见错误现象是点右键看不到 Open Preview,或按 Ctrl+P 搜不到 pdfview.openPreview 命令。根本原因不是插件坏了,而是:
- 没全量重启 VSCode —— 插件注册命令和右键菜单只在启动阶段扫描一次,仅重载 Extension Host 不够稳妥,尤其 Windows 上易残留旧进程
- 插件被手动禁用 —— 在 Extensions 面板中搜
PDF Viewer,检查开关是否为开启状态 - 工作区启用了多根文件夹但 PDF 不在当前根目录下 —— 插件只监听当前打开的工作区路径,跨文件夹双击会失效
预览白屏/卡死/搜索无效?检查硬性限制
PDF Viewer 基于浏览器内核渲染,能力边界清晰,遇到异常优先排查这些不可绕过的限制:
- 路径含中文或空格(如
./技术文档 2024.pdf)→ 加载失败,报错Failed to load PDF file→ 改用纯英文路径(如./tech-docs/manual.pdf) - PDF 是扫描版(纯图片无文本层)→
Ctrl+F搜索空白,缩放后模糊 → 插件无法 OCR,需先用专业工具转成可读文本 - 文件 >50MB → 内存溢出,标签页白屏 + CPU 占用飙高 → 用
qpdf --stream-data=none input.pdf output.pdf压缩后再试 - PDF 含 DRM 加密或复杂表单/JavaScript → 仅做静态快照,交互功能丢失
想双击就常驻打开?关掉 editor preview 模式
即使插件装对了,双击仍可能只开临时标签页(点别的文件就关闭前一个)。这不是插件问题,而是 VSCode 默认的预览机制在干扰。解决方法是:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入并选择
Preferences: Open Settings (JSON) - 在
{}中添加:"workbench.editor.enablePreview": false - 保存即生效,无需重启
改完之后,双击 .pdf 就会真正打开一个可固定、可分栏、可 Ctrl+Tab 切换的常驻标签页。
真正麻烦的从来不是装插件,而是路径编码、文件类型和 Electron WebView 的兼容细节——比如同一份 PDF,在 VSCode 1.85 和 1.92 里渲染质量可能不同,字体嵌入或表单域支持也随内置 WebView 版本浮动。别指望它替代 SumatraPDF 或 Acrobat,把它当作快速扫一眼技术手册的轻量工具更现实。











