双模式快捷键体系
Jupyter 的快捷键分为两套,取决于当前处于哪种模式:
进入命令模式
按 Esc,单元格变为蓝色边框。
此时键盘用于操作单元格结构。
进入编辑模式
按 Enter 或双击单元格,变为绿色边框。
此时键盘用于输入内容。
INFO
在 Help → Keyboard Shortcuts 菜单中可以查看完整的快捷键列表,也可以按 H(命令模式下)直接打开。
运行单元格快捷键
这三个快捷键用得最频繁,务必熟记:
Shift + Enter
运行当前单元格,跳到下一个(最常用)
Ctrl + Enter
运行当前单元格,停在原位
Alt + Enter
运行当前单元格,在下方插入新单元格
Ctrl/⌘ + S
保存 Notebook
命令模式快捷键
先按 Esc 进入命令模式:
单元格操作
A在上方插入新单元格(Above)
B在下方插入新单元格(Below)
D, D删除当前单元格(按两次 D)
Z撤销删除
X剪切当前单元格
C复制当前单元格
V在下方粘贴
Shift + V在上方粘贴
Ctrl+↑ / ↓上移/下移当前单元格
Shift + M合并选中的单元格
单元格类型切换
Y切换为 Code 类型
M切换为 Markdown 类型
R切换为 Raw 类型
1-6切换为对应级别的 Markdown 标题
导航与选择
↑ / K选中上一个单元格
↓ / J选中下一个单元格
Shift + ↑/↓多选单元格
Ctrl + Home跳到第一个单元格
Ctrl + End跳到最后一个单元格
H显示快捷键帮助
Kernel 操作
I, I中断 Kernel(按两次 I)
0, 0重启 Kernel(按两次 0)
编辑模式快捷键
按 Enter 进入编辑模式后可用:
Tab代码自动补全(或缩进)
Shift + Tab显示函数文档(弹出 Docstring)
Ctrl + ]增加缩进
Ctrl + [减少缩进
Ctrl + /注释/取消注释当前行
Ctrl + Z撤销
Ctrl + Y重做
Ctrl + D删除当前行
Ctrl + A全选单元格内容
Ctrl + Shift + -在光标处分割单元格
Tab 自动补全
在编辑模式下按 Tab 触发补全:
# 函数名补全 np.linTab # → 显示:linspace, linalg, load, loadtxt... # 模块属性补全 pd.DataFrame.Tab # → 显示 DataFrame 的所有方法和属性 # 文件路径补全 pd.read_csv("data/Tab # → 列出 data/ 目录下的文件
查看文档(Shift + Tab)
将光标放在函数名内,按 Shift+Tab 查看其文档字符串:
# 光标在 read_csv 内,按 Shift+Tab pd.read_csv( ← 光标在这里
会弹出一个浮层显示函数签名和说明,按 Shift+Tab 两次展开完整文档,按 Shift+Tab 四次在页面底部固定显示。
也可以在函数后加 ? 或 ??:
pd.read_csv? # 显示 docstring pd.read_csv?? # 显示源代码
查找与替换
按 Ctrl+H(或 Edit → Find & Replace)打开查找替换面板,可以在整个 Notebook 中搜索和替换文本。
折叠输出
单击单元格左侧的竖线(输出区域的左边框)可以折叠/展开输出。对于产生大量输出的单元格很有用。
- 单击一次:折叠
- 再次单击:展开
- 双击:完全隐藏(只留一行高度)
行号显示
在命令模式下按 L,或 View → Toggle Line Numbers,可以显示/隐藏单元格行号,方便调试。
代码编写效率技巧
# 1. 多行编辑(按住 Alt,拖动鼠标)— 仅 JupyterLab x1 = 1 # 多行同时编辑时很有用 x2 = 2 x3 = 3 # 2. 用 ? 快速查看文档(比查网页更快) import numpy as np np.sort? # 查看 np.sort 的文档字符串 # 在页面底部显示完整文档 # 3. 用 ?? 查看函数源代码 np.cumsum?? # 显示 numpy.cumsum 的实际 Python 源码(部分函数是 C 实现,会显示文档) # 4. 查看对象的所有属性方法 df = pd.DataFrame() df.T[Tab] # 按 Tab 看所有 T 开头的方法
调试 Notebook 的技巧
# 1. 使用 %debug 进入交互式调试器(在报错后立即运行) def buggy_function(x): return x / 0 buggy_function(5) # ZeroDivisionError # 在下一个 cell 运行: %debug # 进入 pdb 调试器,可以查看变量、逐步执行 # 2. 打印中间状态(最简单有效的调试方式) for i, item in enumerate(data): if i < 3: # 只打印前 3 条,避免输出过多 print(f"[{i}] type={type(item).__name__}, value={item!r}") # 3. 用 assert 检查数据假设 assert df.shape[0] > 0, "数据集为空!" assert 'user_id' in df.columns, "缺少 user_id 列" assert df['age'].between(0, 150).all(), "年龄数据异常"
%pdb 自动调试模式
运行 %pdb on 后,任何未捕获的异常都会自动触发 pdb 调试器,无需手动运行 %debug。在调试器中常用命令:p variable(打印变量)、l(列出周围代码)、n(下一行)、q(退出调试器)。调试完成后运行 %pdb off 关闭自动模式。
批量执行技巧
# 从菜单:Run → Run All Cells # 从菜单:Run → Run All Above(运行当前单元格以上的所有单元格) # 从菜单:Run → Run All Below(运行当前单元格及以下) # 从代码中控制执行流程(不推荐,复杂性高) raise SystemExit() # 在某处停止执行
高效 Jupyter 工作流的完整体系
命令模式 vs 编辑模式
Jupyter 有两个核心模式:命令模式(蓝色边框)用于单元格级别的操作(插入、删除、移动、类型切换);编辑模式(绿色边框)用于单元格内容的编辑。Esc 切换到命令模式,Enter 切换到编辑模式。理解这两个模式的切换,是 Jupyter 快捷键体系的基础——同一个按键在两个模式下有完全不同的含义(如 A 在命令模式是"上方插入",在编辑模式是输入字母 a)。
Tab 补全的智能程度
Jupyter 的 Tab 补全不仅补全变量名和函数名,还支持:文件路径补全(在字符串中输入路径后按 Tab)、字典键补全(d['k 按 Tab 列出所有键)、模块属性补全(import numpy as np; np. 按 Tab)。JupyterLab 的补全质量优于经典 Notebook,支持类型推断辅助补全。
文档查看快捷键的选择
Shift+Tab(1次):浮层显示函数签名(快速确认参数顺序);Shift+Tab(2次):展开完整 docstring(查看所有参数说明);函数名后加 ?:在 pager 区域显示文档;函数名后加 ??:显示源代码(开源库调试的利器)。养成在调用不熟悉的函数前先按 Shift+Tab 查看签名的习惯,减少 API 查错时间。
常见快捷键误操作
- D D(双击 D)误删单元格:命令模式下连按两次 D 会立即删除当前单元格,没有确认对话框。用 Ctrl+Z 可以撤销,但如果已经保存或执行了其他操作,撤销可能无效。养成重要单元格前先备份(Ctrl+C → B → Ctrl+V)的习惯。
- Y/M 切换类型后内容改变:在命令模式下按 Y 将 Markdown 单元格转为 Code,内容会变成可执行的 Python 代码(Markdown 语法会被解释为变量名等),可能报错。反向用 M 将 Code 转为 Markdown 时,Python 代码会变成 Markdown 文本(不再执行)。切换前确认当前单元格是否选对。
- 在编辑模式下触发命令模式快捷键:用户最常见的问题是在输入代码时意外触发了命令模式快捷键(如 Esc 后立刻按 A 意外插入了新单元格)。记住:绿色边框 = 编辑模式,蓝色边框 = 命令模式。
本章小结
本章核心要点
- 核心运行快捷键:Shift+Enter(运行并移动到下一格)、Ctrl+Enter(运行并停留)、Alt+Enter(运行并在下方插入新格)。Shift+Enter 是最常用的,适合从上往下逐步执行 Notebook。
- 命令模式 vs 编辑模式:Esc 进入命令模式(操作单元格),Enter 进入编辑模式(编辑内容)。命令模式下 A/B 插入、D D 删除、M/Y 切换类型、Shift+M 合并;编辑模式下 Tab 补全、Shift+Tab 查文档、Ctrl+/ 注释。
- Tab 补全的能力:不仅补全变量名,还支持字典键、文件路径、模块属性的智能补全。在调用新函数时先用 Shift+Tab 查看签名,比查官方文档更快。
- 文档快捷访问:Shift+Tab(1次)显示签名,2次展开文档;函数后加 ? 查 docstring,加 ?? 查源代码。这对于快速了解第三方库 API 非常实用。
- 高效编辑技巧:Ctrl+Shift+- 在光标处分割单元格(将长单元格拆分);折叠输出(点击输出区左侧竖线)处理大量输出;Ctrl+H 全文查找替换;L 显示行号(调试用)。