2016-04-15 8 views
7

In Pycharm hat der Konsolenverlauf Einträge vom neuesten (oben) bis zum ältesten (unten). Das ist in gewisser Weise in Ordnung, aber es ist schrecklich für das Kopieren mehrere Codezeilen aus der Geschichte einfügen. Was passiert ist, dass Sie Ihren Code-Flow auf den Kopf stellen, wenn Sie aus dem Verlauf kopieren. Im Grunde müssen Sie Zeile für Zeile kopieren und einfügen, und zwar auf Kosten des Öffnens des Verlaufs und des Scrollens zur gewünschten Zeile.Wie invertiert man die Reihenfolge der Konsolenhistorie in Pycharm für das Kopieren von Kopien?

Es spielt keine Rolle, wenn Sie mit der Strg-Taste Ihre Zeilen in der Reihenfolge auswählen, in der sie erneut eingegeben werden sollen. Das Popup-Fenster "Konsolenverlauf" sortiert sie in der Reihenfolge, in der sie angezeigt werden (d. H. Die neueste oben, die älteste unten).

Beispiel: Sagen Sie bitte die folgenden zwei Zeilen auf der Konsole lief

import pandas as pd 
df = pd.read_csv('path_to_file') 

Wenn Sie es auf die Geschichte schauen, das ist, was Sie sehen:

1 df = pd.read_csv('path_to_file') 
2 import pandas as pd 

Also, wenn Sie Wählen Sie diese beiden Zeilen aus, um sie in der Konsole oder in Ihrem Skript einzufügen. Sie befinden sich in der falschen Reihenfolge, wodurch der Code-Flow unterbrochen wird.

Ich habe nach einem Weg zu entweder gesucht: (1) invertieren, wie Konsole Geschichte angezeigt wird (d. H. Älteste (oben) bis neueste (unten)). (2) Beibehalten der Auswahlreihenfolge (d. H. Position ignorieren, Reihenfolge mit Strg + Klick, so dass ich im obigen Beispiel zuerst Zeile 2, Zeile 1 Sekunde auswählen konnte und diese Reihenfolge zum Einfügen beibehalten würde).

Anwendungen:

a) Rerun zuvor eingegebenen Codescheiben in der Konsole;

b) Kopieren vom Konsolenverlauf in die Skriptdatei.

Vielen Dank im Voraus. Prost!

+0

Verwandte Bug-Report auf PyCharm des Bug-Tracker: https://youtrack.jetbrains.com/issue/PY-23114 – AXO

Antwort

1

schreiben nur einen kurzen Code, um es rückgängig zu machen:

#triple string quotes over multiple lines 
code= """ 
df = pd.read_csv('path_to_file') 
import pandas as pd 
""" #end of multiline quote 

split_by_line = code.split("\n") 

split_by_line.reverse() 

print("\n".join(split_by_line)) 

Anmerkung: Ich habe noch nie mit PyCharm gearbeitet, damit diese maay nicht richtig für die Blöcke arbeiten (if, for etc)

+0

Obwohl es hilft, löst es das Problem nicht vollständig, da es nur funktioniert, wenn Sie die genaue umgekehrte Reihenfolge beibehalten möchten. Wenn man die Reihenfolge einiger Zeilen tauschen möchte, muss das später gemacht werden. Aber es ist definitiv besser als das, womit ich angefangen habe. Sagen, ich möchte Zeilen 1, 5, 10 und 15, aber in der Reihenfolge 15, 10, 1 und 5 geschrieben. Das Beispiel ist minimalistisch, aber ich habe diese Art von Situation (mit einer größeren Anzahl von Zeilen beteiligt und ein paar von ihnen manchmal nicht rückgängig gemacht –

+0

Ein anderes Beispiel wo es würde zusammenbrechen: Wenn Sie auf der Konsole einen mehrzeiligen Befehl eingegeben haben, sagen Sie ein Diktat mit Einträgen nach Zeile: 'd = {k0: v0, \ n ' k1 : v1 \ n ' 'k2: v0,' ich gebe: v2} ' mit Ihrem anwser dies auch, mit dem Schließen'} 'erscheint vor dem dict' d = {k0 Öffnung rückgängig gemacht werden würde ein +1, da es hilft, aber ich akzeptiere nicht als Antwort noch Sünde ce es löst es nicht per se. Trotzdem, vielen Dank !!! –