VSCode的Jupyter Keymap:为Jupyter用户定制的快捷键

17次阅读

vscodejupyter快捷键不一致需启用Jupyter专用键映射,方法包括:一、在settings.json中设置”jupyter.keymap”: “jupyter-notebook”;二、导入官方jupyterNotebookKeybindings.json;三、通过设置ui选择“jupyter-notebook”预设;四、限定快捷键作用域避免扩展冲突。

VSCode的Jupyter Keymap:为Jupyter用户定制的快捷键

如果您在VSCode中使用Jupyter Notebook或Jupyter Lab界面,但发现默认快捷键与您在原生Jupyter环境中习惯的操作不一致,则可能是VSCode未启用或未正确配置Jupyter专用键映射。以下是为Jupyter用户定制快捷键的多种配置方法:

本文运行环境:macBook Pro,macOS Sequoia。

一、启用VSCode内置Jupyter Keymap扩展

VSCode自带Jupyter扩展已集成一套与经典Jupyter Notebook高度兼容的快捷键方案,需手动激活该键映射模式。该模式会将Command+Enter等组合映射为执行单元格,Shift+Enter映射为执行并插入新单元格,从而还原原生体验。

1、打开VSCode命令面板(按Cmd+Shift+P)。

2、输入并选择“Preferences: Open Settings (JSON)”。

3、在settings.json文件中添加以下行:

“jupyter.askForKernelRestart”: false,

“jupyter.defaultCellLanguage”: “python“,

“jupyter.keymap”: “jupyter-notebook”

4、保存文件并重启VSCode窗口(Cmd+Shift+P → Developer: Reload window)。

二、手动导入Jupyter Notebook官方JSON键映射

VSCode支持通过自定义keybindings.json文件导入外部键映射规则。Jupyter官方维护了一套完整对应Classic Notebook行为的JSON键绑定,可直接下载并覆盖本地快捷键配置。

1、访问https://raw.githubusercontent.com/microsoft/vscode-jupyter/main/activation/src/client/common/telemetry/keys/jupyterNotebookKeybindings.json

2、复制全部JSON内容。

3、在VSCode中按Cmd+Shift+P,输入“Preferences: Open Keyboard Shortcuts (JSON)”,打开keybindings.json。

4、将复制的内容粘贴至文件中方括号内(确保为合法JSON数组格式,末尾无多余逗号)。

5、保存后,所有以”jupyter.”开头的命令将按Jupyter Notebook原始逻辑响应

三、通过设置UI启用Jupyter键映射预设

VSCode设置界面提供可视化方式切换键映射方案,无需编辑JSON文件。该方式适合不熟悉配置文件结构的用户,且能实时预览生效状态。

1、点击左下角齿轮图标,选择“Settings”。

2、在搜索栏输入“jupyter keymap”。

3、找到“Jupyter > Keymap”选项。

4、从下拉菜单中选择“jupyter-notebook”。

5、此时Ctrl+M(Mac上为Cmd+M)将触发命令模式,Esc退出编辑模式

四、禁用冲突扩展的全局快捷键

部分已安装扩展(如vimemacs Keymap、python、Pylance)可能劫持Jupyter上下文中的快捷键,导致Cmd+Enter无响应或跳转到错误命令。需明确限定快捷键作用域。

1、打开键盘快捷键设置(Cmd+K Cmd+S)。

2、在搜索框输入“jupyter.execute”。

3、右键点击“Jupyter: Execute Cell”条目,选择“Change When Expression”。

4、输入”context == ‘jupyter-notebook’ && !editorTextFocus”(不含引号)。

5、该表达式确保仅在Jupyter编辑器聚焦且处于Notebook上下文时触发执行操作

text=ZqhQzanResources