Ctrl+/(Mac为Cmd+/)是最直接可靠的批量注释/取消注释方式,仅作用于非空行且自动识别已有#符号,对缩进敏感,不破坏格式;多光标手动注释易出错,不推荐。

Ctrl+/ 是最直接、最可靠的方式,不需要装插件、不依赖版本、覆盖所有主流操作系统。
选中多行后按 Ctrl+/ 就能批量注释或取消注释
这个操作在编辑模式下生效,前提是单元格处于绿色边框状态(按 Enter 进入编辑模式)。选中方式灵活:可以用鼠标拖选,也可以用 Shift + ↑/↓ 扩展选区,甚至全选整个单元格(Ctrl + A)后再按 Ctrl + /。它会自动在每行开头加或删 #,且只作用于非空行——空白行不会被插入 #,避免污染格式。
- Windows/Linux 用
Ctrl + /;Mac 用Cmd + / - 如果当前行已带
#,再次触发会移除;没带则添加 - 对缩进敏感:若某行已有 4 个空格再写代码,
#会插在最前面,不是缩进后,所以结果是# print(1),不是# print(1)
别误用 Alt+Shift+↓ 拉多光标来“手动注释”
虽然 Jupyter Notebook(≥5.0)支持多光标编辑,但用 Alt + Shift + ↓(Win/Linux)或 Option + Shift + ↓(Mac)拉出竖直光标后输入 #,看似可行,实际容易出错:光标位置受当前行首缩进影响,可能错位;若某行开头有空格或制表符,# 会插在空格前,破坏原有缩进结构;而且无法智能识别“是否已注释”,得自己判断删还是加。
- 多光标适合插入固定前缀(如
debug_),不适合注释场景 - 一旦光标没对齐,可能只在部分行开头加了
#,漏掉几行还难发现 - 旧版 Notebook(
第三方扩展(如 jupyter_contrib_nbextensions)不是必须的
有人推荐装 jupyter_contrib_nbextensions 启用“Comment/Uncomment”插件,但它带来的功能和原生 Ctrl + / 完全重叠,反而增加启动延迟、Kernel 冲突风险,且新版 JupyterLab 已弃用该扩展体系。除非你同时需要“块注释”('''...)或语言感知注释(比如 JS 用 //),否则纯 Python 场景下没必要引入额外依赖。
- 安装命令
pip install jupyter_contrib_nbextensions后还需执行jupyter contrib nbextension install --user - 启用后快捷键仍是
Ctrl + /,没有新行为 - 在 JupyterLab 中该扩展已不可用,统一用原生命令
真正容易被忽略的是:注释行为只发生在编辑模式,命令模式(蓝色边框)下 Ctrl + / 无反应;另外,Markdown 单元格里按这个快捷键无效——它只对代码单元格起作用。


















