vscode所有预览功能默认离线可用,关键在扩展安装、配置正确及路径准确:markdown用ctrl+shift+v预览并启用autosave;pdf需装vscode-pdfviewer;html嵌入侧边栏需open in sidebar扩展;log文件须手动设语言模式为log。

VSCode 本身不提供“离线文档预览模式”这个开关,它所有预览功能(Markdown、PDF、HTML、Office)都默认离线可用——只要对应扩展已安装且配置正确。问题核心从来不是“开不开”,而是“装没装对、设没设准、路径对不对”。
Markdown 离线预览:别信 Ctrl+K V,用 Ctrl+Shift+V + autoSave
原生 Markdown 预览在 VSCode 1.85+ 中默认快捷键是 Ctrl+Shift+V(Windows/Linux),不是旧版的 Ctrl+K V。按了没反应?先确认三件事:
-
markdown.preview.enabled在设置里为true(Remote-SSH 环境常被重置) - 当前文件后缀必须是
.md,右下角语言模式显示 “Markdown”,不是 “Plain Text” - 禁用 Vim/Emacs 插件等键盘劫持工具;或改用命令面板:
Ctrl+Shift+P→ 输入Markdown: Open Preview to the Side
想接近“实时”效果?只靠一个设置不够:
- 启用
files.autoSave(设为onFocusChange或afterDelay) - 确保
markdown.preview.autoRefresh为true(它只响应保存事件,不监听内存) - 右上角刷新按钮
↻只重载 HTML,不读新内容——未保存=不更新,这是设计,不是 bug
PDF 离线预览:装 vscode-pdfviewer,别碰浏览器打开
原生 VSCode 不支持 PDF 预览,必须装扩展。推荐 vscode-pdfviewer(作者 tomoki1207),它基于 pdf.js,纯前端渲染,完全离线。
- 安装后无需额外配置,默认双击
.pdf文件即预览 - 右键资源管理器中 PDF 文件 → “Open with… → PDF Preview” 更可靠(避免文件关联错配)
- 缩放/搜索/跳页等操作全支持:
Ctrl + +/-缩放,Ctrl + F搜索,Ctrl + G跳页 - 注意:不要右键 → “Reveal in Explorer” 后再点“Open”,这容易触发系统默认 PDF 阅读器
HTML 文档塞进侧边栏:Open in Sidebar 扩展是唯一轻量解
VSCode 侧边栏不接受本地 file:// 协议的 HTML 文件——这是浏览器安全策略决定的。强行拖入或用 open -a "Visual Studio Code" docs/index.html 只会新开编辑器标签,不是侧边栏视图。
- 装
Open in Sidebar(作者 yuichinukiyama),右键 HTML 文件 → “Open in Sidebar” 即可嵌入侧边栏 - 该扩展生成的是 WebView,但 JS/CSS 若含相对路径(如
./css/style.css),离线时大概率 404 —— 因为 WebView 的 base URL 是空的 - 解决办法只有两个:
vscode-resource:协议(此扩展不支持),或把 CSS/JS 全部内联/转成data:base64 - 别指望它像 MPE 那样支持 toc 或数学公式;它只是个容器,内容渲染逻辑全在 HTML 自身
Log 文件高亮离线失效?90% 是语言模式没切对
Log File Highlighter(emeraldwalk.logfilehighlighter)离线能用,但装完几乎必失效——根本原因不是插件没装好,而是 VSCode 默认不把 .log 文件识别为日志类型。
- 必须手动切换语言模式:打开日志文件 → 右键编辑器标签 → “Change Language Mode” → 选
Log(注意大小写,不是log或Log File) -
files.associations对这个插件无效,每个文件都要单独切一次 - 验证是否生效:
Ctrl+Shift+P→ 输入Log File Highlighter: Toggle,能执行即说明加载成功 - 自定义关键词(如
error小写)需改正则:"logfilehighlighter.customPatterns": [{"pattern": "(?i)error"}]
真正容易被忽略的点:所有离线预览能力都依赖「语言模式」和「文件路径解析规则」,而不是网络状态。一旦发现某类文档不渲染,优先检查右下角语言标识、文件后缀、路径是否相对当前文件(不是工作区根)、以及扩展是否真的在运行(看活动栏图标是否点亮)。这些细节比“怎么开启离线模式”重要十倍。











