Notebook Jupyter / IPython: scorciatoia per "esegui tutto"?


119

C'è un collegamento per eseguire tutte le celle in un notebook IPython?

E se no, questo ha un motivo specifico?


Per favore fatemi sapere se avete trovato un modo per farlo - sarebbe estremamente utile !!!
makansij

8
La cosa più vicina che sono riuscito a trovare è stata entrare nella modalità di comando con command+ shift+, Pquindi digitare run all cellse premere Invio?
Makansij

No. Premi esc+ Hper mostrare le scorciatoie da tastiera. I collegamenti sono parsimoniosi a causa delle opzioni limitate che non interferiscono con i collegamenti del browser esistenti.
pylang

Ctrl+ shift+ papre una finestra di navigazione privata in Firefox per me!
Färid Alijani,

2
Funziona perfettamente con Anaconda. Ho fatto clic su Aiuto> Modifica scorciatoie da tastiera> Esegui tutte le celle e ho aggiunto Maiusc-R (a mia scelta).
Davidson Lima

Risposte:


78

Per l'ultimo taccuino jupyter, (versione 5) puoi andare alla scheda "aiuto" nella parte superiore del taccuino e quindi selezionare l'opzione "modifica scorciatoie da tastiera" e aggiungere la tua scorciatoia personalizzata per la funzione "esegui tutto".


8
Questa è la risposta! Molte grazie! Forse un piccolo commento per chi è un po '"cieco" come me: devi cliccare su "aggiungi scorciatoia" (sembra in grigio) e poi digitare letteralmente la scorciatoia che vuoi usare.
user3017048

A partire da Jupyter 5.5 puoi andare su Kernel -> Riavvia ed esegui tutto. Questo eseguirà tutte le celle dall'alto verso il basso.
Chinmoy

5
Come digiti effettivamente il collegamento? Niente funziona per me quando digito.
mathtick

@mathtick, questo è di qualche tempo fa ma tu nella finestra di modifica vedrai un link "dettagli per la definizione delle scorciatoie da tastiera" che spiega come digitare nuove scorciatoie. Essenzialmente devi digitare "Cmd" per il comando, invece di premere "Cmd".
exlo

1
@exlo Nessun collegamento blu nel browser Opera .... solo una casella con un titolo "scorciatoie modalità di comando di modifica", un pulsante OK e nient'altro .....
adiro

51

C'è un menu di scelta rapida per eseguire tutte le celle in Cella> "Esegui tutto". Questo non è associato a una scorciatoia da tastiera per impostazione predefinita: dovrai definire la tua associazione personalizzata dall'interno del taccuino, come descritto qui .

Ad esempio, per aggiungere un'associazione da tastiera che ti consenta di eseguire tutte le celle in un taccuino, puoi inserirla in una cella:

%%javascript

Jupyter.keyboard_manager.command_shortcuts.add_shortcut('r', {
    help : 'run all cells',
    help_index : 'zz',
    handler : function (event) {
        IPython.notebook.execute_all_cells();
        return false;
    }}
);

Se esegui questo codice dall'interno del notebook iPython, dovresti scoprire che ora hai un'associazione da tastiera per eseguire tutte le celle (in questo caso, premi ctrl-M seguito da r)


1
Aggiungi questo codice ~/.jupyter/custom/custom.jse riavvia il notebook e il collegamento sarà sempre disponibile per tutti i notebook.
stason

C'è un modo per scappare "da questa cella in poi"?
Minh Nghĩa,

34

Soluzione più semplice:

Esc, Ctrl- A, Shift- Enter.


1
Soluzione semplice e diretta senza fare confusione con jupyter.
sagarr

1
su Mac: Esc, Comando-A, Maiusc-Invio. Funziona in JupyterLab, non in Jupyter notebook.
Joseph Sheedy,

6

Ho provato a farlo in Jupyter Lab, quindi ho pensato che potesse essere utile pubblicare la risposta qui. Puoi trovare le scorciatoie nelle impostazioni e anche aggiungerne di tue, dove puoi trovare un elenco completo delle possibili scorciatoie qui .

Ad esempio, ho aggiunto il mio collegamento per eseguire tutte le celle. In Jupyter Lab, in Impostazioni> Impostazioni avanzate, seleziona Scorciatoie da tastiera, quindi aggiungi il seguente codice a "Sostituzioni utente":

{
    "notebook:run-all-cells": {
      "command": "notebook:run-all-cells",
      "keys": [
        "Shift Backspace"
      ],
      "selector": ".jp-Notebook.jp-mod-editMode"
    }
}

Qui, Maiusc + Backspace eseguirà tutte le celle nel notebook.


Solo per notare che, in modo equivalente, Shift-BackSpacepuò essere inserito nella finestra di dialogo dell'interfaccia utente "Modifica scorciatoie da tastiera", per il comando di tua scelta, per ottenere lo stesso risultato.
matanster

5

Jupyter Lab 1.0.4:

  1. Nel menu in alto, vai a: Settings->Advanced Settings Editor->Keyboard Shortcuts

  2. Incolla questo codice nella User Preferencesfinestra:

{
    "shortcuts": [
        {
            "command": "runmenu:run-all",
            "keys": [
                "R",
                "R"
            ],
            "selector": "[data-jp-kernel-user]:focus"
        }
    ]
}
  1. Salva (in alto a destra della user-preferencesfinestra)

Questo sarà immediatamente effettivo. Qui, due pressioni consecutive di "R" eseguono tutte le celle (proprio come due "0" per il riavvio del kernel). In particolare, system defaultsha modelli vuoti per tutti i comandi di menu, incluso questo codice (cerca run-all). È selectorstato copiato da kernelmenu:restart, per consentire la stampa rall'interno delle celle. Questo system defaultscopia-incolla può essere generalizzato a qualsiasi comando.


4

A partire da 5.5 puoi eseguire Kernel > Restart and Run All


Per essere più precisi: Kernel> Restart Run -> Run All Cells o: Run -> Restart Kernel and Run All Cells
Thomas Hubregtsen
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.