如何将键盘快捷键永久添加到Jupyter(ipython)笔记本?

如何将键盘快捷键永久添加到Jupyter(ipython)笔记本?,ipython,ipython-notebook,startup,jupyter-notebook,jupyter,Ipython,Ipython Notebook,Startup,Jupyter Notebook,Jupyter,我有以下快捷方式配置,在Jupiter笔记本的单元中运行后可以工作: %%javascript IPython.keyboard_manager.command_shortcuts.add_shortcut('ctrl-q', { help: 'Clear all output', // This text will show up on the help page (CTRL-M h or ESC h) handler: function (ev

我有以下快捷方式配置,在Jupiter笔记本的单元中运行后可以工作:

%%javascript


IPython.keyboard_manager.command_shortcuts.add_shortcut('ctrl-q', {
    help: 'Clear all output',               // This text will show up on the help page (CTRL-M h or ESC h)
    handler: function (event) {             // Function that gets invoked
        if (IPython.notebook.mode == 'command') {
            IPython.notebook.clear_all_output();
            return false;
        }
        return true;                   
    }
  });
如何设置Jupiter笔记本,使其在启动时自动进行初始化

我尝试将相同的代码(没有
%%javascript
)添加到
C:\Users\\\.ipython\profile\u default\static\custom\custom.js
,但没有成功

我只有一个配置文件,是用
ipythonprofile-create
、python3.3和windows7创建的


提前感谢。

custom.js是此代码的正确位置。尝试按如下方式包装它(不要忘记在块结束之前返回true):

$([IPython.events]).on(“app_initialized.NotebookApp”,函数(){
返回true;
});
使用nbextensions添加热键的简单方法
  • 安装。
    pip安装jupyter\u contrib\u nbextensions
  • 然后启动jupyter笔记本
  • 介绍页面将有一个名为nbextensions的新选项卡,单击它并启用键盘快捷键编辑器
  • 现在打开任何笔记本,单击“帮助”>“键盘快捷键”
  • 每个快捷方式旁边都会有一个铅笔图标,如果你点击它,那么你可以将快捷方式设置为任何你想要的
  • 在新版本中(使用
    pip安装-升级笔记本
    进行更新,或者如果使用conda
    conda升级笔记本
    ),您可以从笔记本本身对其进行自定义

    要执行此操作,请单击“帮助->编辑键盘快捷键”


    1。有关更改命令模式快捷方式的信息:请参阅萨尔瓦多的答案

    2。更改编辑模式快捷方式:

    编辑文件~/.jupyter/nbconfig/notebook.json,如上所述

    例如,在macOS上使用enter命令替换执行代码的control enter快捷方式后,文件如下所示:

    {
      "Notebook": {
        "Toolbar": true,
        "Header": true
      },
      "Cell": {
        "cm_config": {
          "lineNumbers": true
        }
      },
      "keys": {
        "command": {
          "unbind": [
            "ctrl-enter"
          ],
          "bind": {
            "cmdtrl-enter": "jupyter-notebook:run-cell"   
          }
        }, 
        "edit": {
          "unbind": [
            "ctrl-enter"
          ],
          "bind": {
            "cmdtrl-enter": "jupyter-notebook:run-cell"
          }  
        } 
      }   
    } 
    

    请注意,对于jupyter
    custom.js
    位于
    ~/.jupyter/custom/custom.js
    注意,这并不能解决编辑模式的键盘快捷键问题,只能解决命令模式。因此,虽然
    enter command mode
    表面上是可用的,但实际上并不是由该接口设置的。这也是不可用的persistent@Celtor它在Jupyter 4.4.0上对我来说是持久的,保存在
    ~/.Jupyter/nbconfig/notebook.json
    下,对我来说不起作用。我试图为
    重新启动内核并运行所有单元格指定一个快捷方式
    ,但一旦我从对话框中保存并重新打开对话框,快捷方式就消失了。它在allI不起作用我使用过“编辑键盘快捷键”并进行过多次自定义,但我在Jupiter的任何自定义文件(“custom.js”或“notebook.json”)中都找不到它们。它们存储在哪里???你真的相信“”足够让人用你的方法创建键盘快捷键吗?!1.这不是同时适用于命令和编辑模式吗?2.萨尔瓦多·达利的回答不是通过GUI编辑了这个文件吗?萨尔瓦多的回答只是更改了命令模式快捷方式,而不是编辑模式@Sachit Nagpal,感谢您的回复。是否有文件支持您的说法?我在上面的代码片段中看到了
    “edit”:
    ,我尝试了
    6.1.4版
    ,它似乎也配置了
    edit
    模式键映射。我的观点是编辑
    ~/.jupyter/nbconfig/notebook.json
    应该适用于命令模式和编辑模式。您可以相应地编辑文件。如果只想编辑命令模式快捷方式,请不要在“编辑”键下绑定/解除绑定任何内容,并仅在“命令”键下添加绑定。
    {
      "Notebook": {
        "Toolbar": true,
        "Header": true
      },
      "Cell": {
        "cm_config": {
          "lineNumbers": true
        }
      },
      "keys": {
        "command": {
          "unbind": [
            "ctrl-enter"
          ],
          "bind": {
            "cmdtrl-enter": "jupyter-notebook:run-cell"   
          }
        }, 
        "edit": {
          "unbind": [
            "ctrl-enter"
          ],
          "bind": {
            "cmdtrl-enter": "jupyter-notebook:run-cell"
          }  
        } 
      }   
    }