Suche innerhalb ipython Geschichte
ipython's %his
Befehl gibt den letzten eingegebenen Befehle durch den Benutzer. Ist es möglich die Suche innerhalb dieser Befehle? So etwas wie dieses:
[c for c in %history if c.startswith('plot')]
BEARBEITEN ich bin nicht auf der Suche nach einem Weg, um erneut einen Befehl, sondern um es zu suchen in der history-Liste. Natürlich, manchmal möchte ich erneut einen Befehl nach dem Auffinden es, entweder wörtlich oder mit Modifikationen.
BEARBEITEN Suche mit ctr-r
und dann die Eingabe plot
gibt den letzten Befehl, der beginnt mit "plot". Es wird nicht Liste alle Befehle, die mit beginnen es. Weder können Sie die Suche in der Mitte oder am Ende der Befehle
Lösung
Ausbau PreludeAndFugue Lösung hier das, was ich suchte:
[l for l in _ih if l.startswith('plot')]
hier, die if
Bedingung kann ersetzt werden durch ein regex -
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ähnlich wie in der ersten Antwort können Sie Folgendes tun:
Jedoch, wenn, Durchlaufen die Befehls-history Elemente, die Sie tun können, die folgenden. So können Sie Ihre Liste Verständnis von dieser.
Dies ist dokumentiert im folgenden Abschnitt der Dokumentation:
http://ipython.org/ipython-doc/dev/interactive/reference.html#input-caching-system
Sogar noch besser:
%hist -g pattern
greps Ihre Vergangenheit fürpattern
. Zusätzlich können Sie die Suche einschränken, um die aktuelle Sitzung oder für einen bestimmten Bereich von Zeilen. Sehen%hist?
Also für @BorisGorelik die Frage, die Sie würde tun müssen,
Leider kann man nicht tun,
noch
|
) oben sind Teil der das Muster gesucht werden soll, nicht einigen neuen magic regex oder string-literal-Begrenzungszeichen. Also, wenn Sie schauen, für das buchstäbliche Wort "Muster" nicht verwenden, jede Art von Zeichenfolge, Trennzeichen, geben Sie einfach%history -g pattern
Wenn Sie Zitate oder alles, was es scheitern wird. Und einige regelmäßige Ausdruck-Zeichen bekommen, wird verschlungen von der command line parser wie%history -g pattern?
löst die docstring helfen und scheitern, aber %Geschichte -g-Sprüche[n] arbeiten.extended regular expressions
syntax? auch in Windows?re.findall()
Suche nach regulären Ausdrücken: github.com/ipython/ipython/blob/master/IPython/core/...Wenn Sie möchten erneut ausführen einen Befehl in der Geschichte, versuchen
Ctrl-r
und dann den Suchbegriff.n
imvim
die rotieren durch alle ipython-Befehle aus der Geschichte?Ctrl-R
zum Durchlaufen der Geschichte wie in der bash..Normalerweise finde ich mich wollen, um die Suche in der gesamten ipython Geschichte über alle früheren und aktuellen Sitzungen. Für diese verwende ich:
ODER (nicht beide ausgeführt werden, oder Sie werden beschädigt/löscht Ihre Geschichte)
Die such-Zeichenfolge ist kein regulärer Ausdruck ist. Die iPython history_manager verwendet sqlite ist
glob *
such-syntax statt.Es ist die Art, wie Sie es tun können:
oder
um zu verhindern, dass Magie expansion.
....
Beispiel (in meiner Geschichte):
Beispiel (in meiner Geschichte):