2017-02-23 3 views
0

J'essaie d'ajouter les raccourcis Cntl + K et Cntl + J pour déplacer les cellules rapidement vers le haut et vers le bas. Je considérais la question sur Github here pour ajouter des raccourcis et trouvé ce qui semblait être une réponse pratique:Ajout de raccourcis clavier pour déplacer la cellule vers le haut et la déplacer vers le bas

« Pour ceux (comme moi) qui a ajouté ce raccourci, ajoutez à votre ~/.ipython/profile_default/statique/personnalisés/custom.js:.

$([IPython.events]).on("app_initialized.NotebookApp", function() { 

IPython.keyboard_manager.command_shortcuts.add_shortcut('ctrl-k', function (event) { 
    IPython.notebook.move_cell_up(); 
    return false; 
}); 

IPython.keyboard_manager.command_shortcuts.add_shortcut('ctrl-j', function (event) { 
    IPython.notebook.move_cell_down(); 
    return false; 
}); 

});

"

Mais mes utilisateurs/{my name}/répertoire ipython/profile_default de ne pas avoir un dossier statique. J'ai essayé d'ajouter les dossiers manquants et le fichier custom.js et j'ai rouvert l'invite Anaconda, mais cela n'a pas ajouté les raccourcis manquants.

Une autre réponse a la même question:

« Utilisez les éléments suivants:

$ cat ~/.jupyter/custom/custom.js 

define(["base/js/namespace"], function(Jupyter){ 
    console.info('Binding Ctrl-J/K to move cell up/down'); 
    Jupyter.keyboard_manager.command_shortcuts.add_shortcut('Ctrl-k','jupyter-notebook:move-cell-up'); 
    Jupyter.keyboard_manager.command_shortcuts.add_shortcut('Ctrl-j','jupyter-notebook:move-cell-down'); 
}); 

»

Cette réponse aussi ne fonctionne pas (en ajoutant le dossier manquant et custom.js fichier n'a pas travail).

Répondre

1

Comme proposé dans le document officiel (obtenu avec le « Aide> Notebook » d'action de menu), vous pouvez essayer d'abord dans un bloc-notes en direct. La console JavaScript du navigateur aide aussi.

J'ai essayé:


%%javascript 

IPython.keyboard_manager.command_shortcuts.add_shortcut('Ctrl-k','jupyter-notebook:move-cell-up'); 
// replacing IPython with Jupyter should work as well: 
Jupyterkeyboard_manager.command_shortcuts.add_shortcut('Ctrl-j','jupyter-notebook:move-cell-down'); 

Il fonctionne, mais, tout comme en cliquant sur le bouton de la barre d'outils correspondante, la console met en garde contre deprecation en faveur de IPython.notebook.move_selection_up(). La chaîne "jupyter-notebook:move-cell-up" fait référence à la même action.

Je suppose donc une chose raisonnable à faire est de le redéfinir à partir de zéro:


IPython.keyboard_manager.command_shortcuts.add_shortcut('Ctrl-k', { 
    help : 'move up selected cells', 
    help_index : 'jupyter-notebook:move-selection-up', 
    handler : function (event) { 
     IPython.notebook.move_selection_up(); 
     return false; 
    }} 
); 

IPython.keyboard_manager.command_shortcuts.add_shortcut('Ctrl-j', { 
    help : 'move down selected cells', 
    help_index : 'jupyter-notebook:move-selection-down', 
    handler : function (event) { 
     IPython.notebook.move_selection_down(); 
     return false; 
    }} 
); 

Après l'exécution de la cellule notbook (ou le code dans votre console de navigateur), il devrait soyez actif et vous pouvez expérimenter avec.

Une fois heureux, vérifiez le chemin de votre profil jupyter avec !jupyter --config, et de là vous sauriez où copier votre code: <profile>/static/custom/custom.js de sorte qu'il serait actif dans les sessions suivantes de jupyter.