ctrl + /(windows/linux)或 cmd + /(macos)是最可靠的多行注释方式,仅在编辑模式下生效,逐行添加或删除#号,不支持列编辑和语法智能识别。

选中多行后按 Ctrl + / 是最可靠的方式
Jupyter Notebook 默认支持标准的 Ctrl + /(Windows/Linux)或 Cmd + /(macOS)来切换注释状态,无论单行还是多行,只要先选中目标代码块即可生效。这个快捷键在编辑模式下工作,不需要进入命令模式。
常见错误现象包括:按了没反应、只注释了第一行、或者触发了浏览器快捷键(比如新建标签页)。这通常是因为:
- 当前处于命令模式(Esc 退出后按 Enter 进入编辑模式再试)
- 选中范围不完整(鼠标拖选或 Shift+方向键确认是否真选中了全部目标行)
- Mac 用户误用了
Ctrl而不是Cmd
Ctrl + / 注释行为是“行级”而非“代码块级”
它不会智能识别语法结构,只是在每行开头加/删一个 #,哪怕你选中的是函数中间几行、甚至是空行或注释行本身——它也会照常操作。这意味着:
- 如果某行已有
#,再按一次会把#删掉,而不是跳过 - 如果某行是空行,会变成
#;取消注释时又变回空行 - 不支持 Python 的三引号字符串或多行字面量自动识别,别指望它能“安全注释一段 docstring”
别用 Alt + 拖动光标那种“列选择”方式
有些用户从 VS Code 或 PyCharm 习惯迁移过来,试图在 Jupyter 里用 Alt 拖出竖直光标再批量操作,这在绝大多数 Jupyter 版本(包括 7.x 和 8.x)中不生效。Jupyter 的编辑器基于 CodeMirror,不支持原生列编辑,强行拖动只会导致光标错位或选区异常。
真正有效的替代方案只有两个:
- 用鼠标或键盘(Shift + ↑/↓)选中连续多行,再按
Ctrl + / - 把要注释的代码剪切到新 cell,用 Markdown cell 临时存着(适合临时屏蔽大段逻辑)
自定义快捷键或插件不是必须,但容易埋坑
有人为统一 IDE 体验去装 jupyter-contrib-nbextensions 并启用 “Comment Usages” 插件,结果发现新版 Jupyter(尤其是 7.0+)与插件兼容性差,常导致 Ctrl + / 失效或整个 notebook 卡死。除非你明确需要“注释时自动缩进对齐”或“跳过已有注释行”,否则没必要引入额外依赖。
真正容易被忽略的点是:快捷键是否被系统或浏览器劫持。比如 Chrome 扩展(如 Grammarly)、输入法(特别是某些中文输入法的快捷键冲突)、甚至 Windows 的粘滞键设置,都可能拦截 Ctrl + /。遇到问题时,先在纯文本编辑器里测试该组合键是否正常触发,再排查 Jupyter 本身。











