2017-01-09 2 views
7

Wie kann ich passende Keywords in einem Jupyter Notebook über eine Tastenkombination auswählen? Zum Beispiel kann ich im Atom/Sublime Editor cmd + D auf einem Mac (oder Ctrl + d unter Windows) drücken, während der Cursor auf 'var' steht und jedes Mal, wenn ich das mache, wird die nächste 'var' hervorgehoben. Ich kann dann den neuen Variablennamen eingeben und 'var' wird durch was auch immer getippt ersetzt.Atom/Sublime wie Mehrfachauswahl in Jupyter

var = "hello" 
print(var) 
print(var) 

Gibt es ein Äquivalent in einem Jupyter-Notebook?

+0

Ich glaube nicht, nein. Während Jupyter-Notebooks praktisch sind, um herumzubasteln, fand ich sie nervig (am besten), um sie als IDE/Texteditor-Ersatz zu verwenden, aufgrund fehlender Funktionen wie dieser (ganz zu schweigen von der einfachen Funktion zum Suchen und Ersetzen!). –

+0

Ich denke, du hast Recht - ich habe jedoch einen Workaround gefunden. Ich habe bereits in Jupyter VIM Keybindings aktiviert, und beim Googlen habe ich festgestellt, dass VIM bereits einen Weg hat, mit solchen Dingen umzugehen: http://vim.wikia.com/wiki/Search_and_replace – RancheroBeans

Antwort

-1

Ja, es gibt einen Weg, es zu tun.

In einem laufenden Jupyter Notebook:

Presse

Esc

und drücken Sie dann

F

f/F beide funktionieren.

Sie können auch andere Verknüpfungen für Jupyter Notebook in

Hilfe> Tastaturkürzel

Glücklich Coding sehen.

+0

Das OP fragt nach mehreren Selektionen wie in Sublime Text, nicht finden/ersetzen. – Nick

+0

@Nick lesen OP Frage sorgfältig, nach der Auswahl aller Übereinstimmungen er möchte sie durch einen neuen Variablennamen ersetzen. Oben angegeben ist der perfekte Weg, es zu tun. –

+0

Suchen/Ersetzen ist nicht in der folgenden Weise perfekt: 1.Suchen/Ersetzen ersetzt alle Vorkommen der Zeichenfolge, während mehrere Cursor die Zeichenfolge in der Nähe bearbeiten können. 2. Suchen/Ersetzen ist umständlich im Vergleich zu mehreren Cursorn. – Nick

1

custom.js zu

C:\Users\username\.jupyter\custom  # for Windows and 
~/.jupyter/custom/      # for Mac 

mit Inhalt hinzufügen

require(["codemirror/keymap/sublime", "notebook/js/cell", "base/js/namespace"], 
    function(sublime_keymap, cell, IPython) { 
     cell.Cell.options_default.cm_config.keyMap = 'sublime'; 
     cell.Cell.options_default.cm_config.extraKeys["Ctrl-Enter"] = function(cm) {} 
     var cells = IPython.notebook.get_cells(); 
     for(var cl=0; cl< cells.length ; cl++){ 
      cells[cl].code_mirror.setOption('keyMap', 'sublime'); 
      cells[cl].code_mirror.setOption("extraKeys", { 
       "Ctrl-Enter": function(cm) {} 
      }); 
     } 
    } 
); 

und jupyter neu starten. Jetzt sollte Ctrl+D funktionieren, wie es in Sublime tut.

Sie können sehen, dass Ctrl-Enter Funktionalität deaktiviert ist, da es sehr bequem wäre, aktuelle Zelle statt neue Zeile für die meisten Benutzer zu erstellen. Sie können diese Funktionalität auswählen, indem Sie diese Zeile kommentieren.

Sie können andere Tastenkonfig, die Sie nicht möchten, auf ähnliche Weise deaktivieren.

enter image description here