Ctrl+Shift+V没反应需先确认三件事:markdown.preview.enabled为true、文件后缀为.md且语言模式显示“Markdown”、无Vim/Emacs等插件劫持快捷键。

Ctrl+Shift+V 按了没反应?先确认三件事
VSCode 原生 Markdown 预览快捷键是 Ctrl+Shift+V(Windows/Linux)或 Cmd+Shift+V(macOS),不是 Ctrl+K V——后者在 1.85 版本后已弃用,按了无响应属正常行为。
常见失效原因只有三个:
-
markdown.preview.enabled被设为false(Remote-SSH 环境下易被重置) - 当前文件后缀不是
.md,或右下角语言模式显示为Plain Text/Markdown (GitHub),而非原生Markdown - 键盘映射插件(如 Vim、Emacs 模式)劫持了
Ctrl+Shift+V;临时禁用插件再试,或改用命令面板:Ctrl+Shift+P→ 输入Markdown: Open Preview to the Side
想换快捷键?直接改 keybindings.json
GUI 界面点来点去容易覆盖错、查不到冲突,真正生效的绑定全在 keybindings.json 里。打开方式必须是:Ctrl+Shift+P → 输入 Preferences: Open Keyboard Shortcuts (JSON) 回车。
添加一条新绑定,结构要严格:
-
key:小写、修饰键顺序固定为ctrl→shift→alt→meta(macOS 用cmd),例如"ctrl+alt+v" -
command:必须是完整命令 ID,不是中文名;正确值是"markdown.showPreviewToSide"(右侧预览)或"markdown.showPreview"(当前标签页) -
when:建议加上"editorTextFocus && resourceExtname == '.md'",避免在终端或 JSON 文件里误触发
示例:
[{
"key": "ctrl+alt+v",
"command": "markdown.showPreviewToSide",
"when": "editorTextFocus && resourceExtname == '.md'"
}]
为什么改完还是不生效?重点盯 when 和插件冲突
“点了没反应”绝大多数时候不是语法错误,而是 when 条件没匹配上上下文,或者有插件偷偷拦截了按键。
- 检查
when是否漏写了editorTextFocus—— 如果光标不在编辑器里,快捷键就是静默失效 - 运行
Ctrl+Shift+P→Developer: Toggle Developer Tools,在 Console 里执行:console.log(JSON.stringify(monaco.keymaps.KeybindingsRegistry.getBoundKeybindings('markdown.showPreviewToSide'), null, 2))
看是否真绑上了,以及有没有其他规则优先级更高 - Vim 插件常把
Ctrl+Shift+V当作粘贴块处理;可在keybindings.json里加一条“取消绑定”:{"key": "ctrl+shift+v", "command": "unset", "when": "vim.mode == 'Normal'"}
预览开了但内容不更新?这不是快捷键问题
快捷键只负责打开窗口,刷新逻辑和它无关。VSCode 原生预览只读磁盘文件,**未保存的修改永远不会进预览**。
- 必须先按
Ctrl+S保存,预览才更新——这是设计,不是 bug -
files.autoSave设为onFocusChange或afterDelay可缓解手动保存压力,但不能绕过“保存即刷新”机制 -
markdown.preview.autoRefresh默认为true,但它只对已保存文件生效;设为false会导致保存后也不刷新 - 预览窗口右上角的刷新按钮(↻)只是重载 HTML,不重新读取文件内容——它解决不了“没保存”这个前提
真正容易被忽略的是:同步滚动、缩放、数学公式支持这些功能,默认都关着。开了快捷键只是第一步,后续还得手动开 markdown.preview.scrollEditorWithPreview、markdown.math.enabled 这类开关,否则预览窗口等于半残废。


















