如何在Visual Studio Code中默认折叠Jupyter笔记本所有单元格?
VS Code中Jupyter笔记本默认折叠所有单元格的解决方案
核心结论
VS Code原生没有提供开箱即用的设置,让Jupyter笔记本打开时自动折叠所有输入/输出单元格。你尝试的"jupyter.defaultCellCollapseState": true,实际是控制新建单元格的默认折叠状态,而非打开已有笔记本时的批量折叠,所以无效。
可行解决方法
方法1:命令面板批量折叠
每次打开笔记本后,按Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)唤起命令面板,输入并执行以下命令:
- 折叠所有代码单元格:
Jupyter: Collapse All Code Cells - 折叠所有输出:
Jupyter: Collapse All Outputs
这是官方提供的最直接手动方案,能快速完成批量折叠。
方法2:自定义键盘快捷键
如果嫌调用命令面板麻烦,可以给折叠命令绑定专属快捷键:
- 打开快捷键设置:按
Ctrl+K Ctrl+S(Windows/Linux)或Cmd+K Cmd+S(Mac) - 在搜索框输入命令名称(比如
Jupyter: Collapse All Code Cells) - 点击命令右侧的铅笔图标,设置你习惯的快捷键(例如
Ctrl+Alt+C) - 同理给
Jupyter: Collapse All Outputs设置快捷键(例如Ctrl+Alt+O)
后续打开笔记本后,按快捷键就能一键完成批量折叠。
方法3:VS Code任务自动执行折叠命令
可以在项目的.vscode/tasks.json中配置任务,实现打开文件夹时自动执行折叠操作:
{ "version": "2.0.0", "tasks": [ { "label": "Collapse Jupyter Cells", "type": "shell", "command": "${command:jupyter.collapseAllCodeCells}", "runOptions": { "runOn": "folderOpen" }, "problemMatcher": [] }, { "label": "Collapse Jupyter Outputs", "type": "shell", "command": "${command:jupyter.collapseAllOutputs}", "runOptions": { "runOn": "folderOpen" }, "problemMatcher": [] } ] }
注意:该任务会在打开文件夹时触发,适合经常在同一文件夹下处理Jupyter笔记本的场景。若需针对单个笔记本生效,可结合when条件进行更精细配置,但目前VS Code任务系统对单个文件的触发支持有限。
方法4:自定义VS Code扩展(进阶)
如果具备基础的扩展开发能力,可以编写简单扩展,监听Jupyter笔记本打开事件,自动执行折叠命令。核心逻辑示例:
import * as vscode from 'vscode'; export function activate(context: vscode.ExtensionContext) { let disposable = vscode.window.onDidChangeActiveTextEditor(async (editor) => { if (editor?.document.languageId === 'jupyter-notebook') { await vscode.commands.executeCommand('jupyter.collapseAllCodeCells'); await vscode.commands.executeCommand('jupyter.collapseAllOutputs'); } }); context.subscriptions.push(disposable); }
可通过VS Code的Yeoman生成器快速搭建扩展框架,打包后本地安装即可使用。
内容的提问来源于stack exchange,提问作者Niram
相关产品推荐
相关产品推荐

