[PYTHON] Configuration initiale de Jupyter Notebook pour les amoureux de Vim ・ Quitter avec jj (jupyter-vim-binding)

Préface

Je veux faire ce que dit le titre. Notre environnement de développement initial ne contient rien, et jj a tendance à être affiché sans le savoir (je pense qu'il y a vim). Comme il est personnellement souhaitable que Jupyter dispose également d'un environnement vim de base, la procédure de configuration est décrite. L'environnement de l'entreprise est Linux, mais comme j'écris un article sur mon PC personnel avec une installation propre, il s'agit de macOS. Cependant, c'est presque la même chose.

Environnement / préparation

Méthode

Introduction de jupyter-vim-binding

Fondamentalement, je pense que this est bien. Je pense qu'il y en a d'autres, mais cette fois j'écrirai avec ceci. Tout d'abord, installez le notebook jupyter avec pip. J'utilise quand même des pandas.

pip install jupyter
pip install pandas

Suivez la procédure écrite sur github pour la mort cérébrale.

mkdir -p $(jupyter --data-dir)/nbextensions
cd $(jupyter --data-dir)/nbextensions
git clone https://github.com/lambdalisue/jupyter-vim-binding vim_binding
jupyter nbextension enable vim_binding/vim_binding

Pour le moment, si vous ouvrez jupyter à ce stade, vous verrez quelque chose comme ce qui suit.

cd
jupyter notebook
スクリーンショット 2020-04-30 15.16.52.png

Ceci est le répertoire personnel, mais pour le moment, si vous sélectionnez python3 dans Nouveau en haut à droite et que vous l'ouvrez, スクリーンショット 2020-04-30 15.18.41.png

Untitled.ipynb est créé avec cela. Lorsqu'il est crémeux, il est en mode normal et appuyez sur i pour passer en mode insertion. Voir la page originale pour plus de détails. Ceci.

Si vous ne le définissez pas, vous ne pourrez pas quitter le mode d'insertion avec jj et vous fâcher, alors modifiez le mappage de touches.

Modifier le mappage des touches

Dans cet article, éditez avec nvim (veuillez utiliser un éditeur approprié). Il semble que le paramètre jupyter soit placé dans ~ / .jupyter. Créez ou modifiez custom.js sous custom.

nvim ~/.jupyter/custom/custom.js

Lorsque l'éditeur s'ouvre, enregistrez les éléments suivants. C'est le paramètre officiellement écrit, à l'exception du paramètre pour revenir au mode normal avec jj.

// Configure CodeMirror Keymap
require([
  'nbextensions/vim_binding/vim_binding',   // depends your installation
], function() {
  CodeMirror.Vim.map("jj", "<Esc>", "insert"); // jj setting!
});

// Configure Jupyter Keymap
require([
  'nbextensions/vim_binding/vim_binding',
  'base/js/namespace',
], function(vim_binding, ns) {
  // Add post callback
  vim_binding.on_ready_callbacks.push(function(){
    var km = ns.keyboard_manager;
    // Allow Ctrl-2 to change the cell mode into Markdown in Vim normal mode
    km.edit_shortcuts.add_shortcut('ctrl-2', 'vim-binding:change-cell-to-markdown', true);
    // Update Help
    km.edit_shortcuts.events.trigger('rebuild.QuickHelp');
  });
});

Vous pouvez maintenant le modifier assez confortablement. Vous devez comprendre si vous l'utilisez.

en conclusion

Dans l'environnement de l'entreprise, il était difficile d'installer quelque chose pour des raisons de sécurité, mais j'ai réussi à obtenir git. Quand cela deviendra un autre environnement, je le ferai comme cet article pour le moment. Pour vimmer, au moins le mouvement de jkhl est une question vitale, donc je pense qu'il est préférable de définir uniquement jupyter-vim-binding.

Recommended Posts

Configuration initiale de Jupyter Notebook pour les amoureux de Vim ・ Quitter avec jj (jupyter-vim-binding)
Analyse des données pour améliorer POG 2 ~ Analyse avec le notebook jupyter ~
Remplissez la largeur du bloc-notes Jupyter pour remplir le navigateur
Recommandation de Jupyter Notebook, un environnement de codage pour les data scientists
Touche de raccourci pour le bloc-notes Jupyter
Utilisation de Graphviz avec Jupyter Notebook
Utiliser pip avec Jupyter Notebook
Utiliser Cython avec Jupyter Notebook
Jouer avec Jupyter Notebook (IPython Notebook)
[Linux Nginx] Une collection de commandes utilisées dans les paramètres initiaux du serveur Web
Gestion Git des différences de Jupyter Notebook (ipynb) dans JupyterLab pour une visualisation facile
Fichier journal de sortie avec Job (Notebook) de Cloud Pak for Data