自定义快捷键不能写在 jupyter_notebook_config.py 中,因其仅控制服务端行为,不解析前端键盘事件;正确方式是迁移到 jupyterlab 或使用 jupyter_contrib_nbextensions 插件,vscode 中则需配置其自身 keybindings。

自定义快捷键不能写在 jupyter_notebook_config.py 里
直接往 jupyter_notebook_config.py 里加快捷键配置是无效的。这个文件只管服务端行为(比如默认路径、内核选择、自动打开浏览器),不处理前端 UI 的键盘事件。你加了 keybindings 或类似字段,Jupyter Notebook 完全不会读取——它压根不解析这些内容。
custom.js 是唯一可行的手动注入方式(但已不推荐)
旧版 Jupyter Notebook(5.x 及更早)支持通过 ~/.jupyter/custom/custom.js 注入 JavaScript 来覆盖快捷键,例如:
define(['base/js/keyboard'], function(keyboard) {
keyboard.command_shortcuts.add_shortcut('ctrl-shift-p', {
help: 'run cell and insert below',
help_index: 'zz',
handler: function(event) {
IPython.notebook.execute_cell_and_insert_below();
return false;
}
});
});
但该机制在 Notebook 6.0+ 中已被弃用,且依赖未公开的内部 API(如 IPython.notebook),在当前主流版本(2026 年稳定版)中会报错或静默失效。不建议花时间调试这类方案。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
真正生效的配置必须走前端扩展或 Lab 环境
Jupyter Notebook 本身没有用户可编辑的快捷键配置入口;如果你需要可靠、可维护的自定义快捷键,只有两条路:
- 迁移到
JupyterLab:它原生支持Settings → Advanced Settings Editor → Keyboard Shortcuts,可导出/导入 JSON 规则,所有绑定都作用于真实 DOM 和命令系统 - 用
jupyter_contrib_nbextensions插件(仅 Notebook):安装后启用Keyboard Shortcuts Editor扩展,它会在网页右上角提供可视化编辑器,生成的配置最终写入~/.jupyter/nbconfig/notebook.json的keys字段下 - 注意:
nbconfig/notebook.json不是手写的,必须通过插件 UI 修改,否则格式错误会导致整个快捷键系统瘫痪
VSCode 中的 Jupyter 快捷键属于另一套体系
如果你实际用的是 VSCode 内置 Jupyter 支持(而非浏览器里打开的 notebook),那快捷键由 VSCode 控制,和 jupyter_notebook_config.py 完全无关。此时应配置的是 settings.json 中的 "jupyter.keymap",或修改 keybindings.json —— 但那是 VSCode 的范畴,不是 Jupyter 自身的配置文件。
真正容易被忽略的点在于:「自定义快捷键」这件事,在纯 Notebook 环境里根本不存在标准配置路径。要么接受默认,要么换环境,要么靠不稳定的历史 hack。别在 jupyter_notebook_config.py 里浪费时间找 keybinding 字段。










