Как быстро добавить ярлыки клавиш в Jupyter (ipython)?

У меня есть следующая конфигурация для ярлыков, которая работает после запуска в ячейке ноутбука Юпитера:

%%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\<username>\.ipython\profile_default\static\custom\custom.js, но он не сработал.

У меня есть только один профиль, созданный с помощью ipython profile create, Python 3.3, Windows 7.

Спасибо заранее.

Ответ 1

custom.js - это правильное место для этого кода. Попробуйте обернуть его следующим образом (не забудьте return true до конца блока):

$([IPython.events]).on("app_initialized.NotebookApp", function () {
    <your code>

    return true;
});

Ответ 2

В новой версии Jupyter notebook (обновите его либо с помощью pip install --upgrade notebook, либо если вы используете conda conda upgrade notebook), вы можете настроить их из самой записной книжки.

Для этого HelpEdit keyboard shortcuts

введите описание изображения здесь

Ответ 3

Добавление горячих клавиш простым способом с nbextensions

  • Установите nbextensions.
    pip install jupyter_contrib_nbextensions
  • Затем запустите jupyter notebook.
  • На странице ввода будет новая вкладка с именем nbextensions, щелкните ее и включите редактор ярлыков клавиатуры.
  • Теперь откройте любой щелчок мышью по ноутбуку > быстрые клавиши
  • Каждый ярлык будет иметь значок карандаша рядом с ним, если вы нажмете на него, тогда вы можете установить ярлык на все, что хотите.

Ответ 4

1. Для изменения ярлыков командного режима: см. Ответ Сальвадора

2. Для изменения ярлыков режима редактирования:

Отредактируйте файл ~/.jupyter/nbconfig/notebook.json, как описано в https://jupyter-notebook.readthedocs.io/en/stable/extending/keymaps.html.

Например, после замены ярлыка control-enter для выполнения кода на command-enter в macOS файл выглядит следующим образом:

{
  "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"
      }  
    } 
  }   
}