2016-04-15 14 views
7

W Pycharmu historia konsoli zawiera wpisy od najnowszych (od góry) do najstarszych (od dołu). Co jest w pewnym sensie w porządku, ale to okropne, ponieważ kopiuje kilka linii kodu z historii. To, co dzieje się, to, że podczas kopiowania z historii generowany jest kod do góry nogami. Zasadniczo, musisz skopiować i wkleić jedną linię na raz, kosztem otwarcia historii i przewijania do wybranej linii za każdym razem.Jak odwrócić kolejność historii konsoli w pycharm dla wklejania kopii?

Nie ma znaczenia, czy Ctrl wybiera wiersze w kolejności, w jakiej mają być ponownie wprowadzone. Wyskakujące okno historii konsoli posortuje je zgodnie z wyświetloną kolejnością (tj. Najnowsze na górze, najstarsze na dole).

Przykład: Załóżmy, prowadził dwa następujące linie na konsoli

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

Jeśli spojrzeć go na historii, to co zobaczysz:

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

Tak więc, jeśli wybierz te dwie linie, aby wkleić je w konsoli lub w skrypcie, będą one w nieprawidłowej kolejności, dzieląc przepływ kodu.

Szukałem sposobu, aby: (1) odwrócić sposób wyświetlania historii konsoli (tj. Najstarszy (od góry) do najnowszego (dół)). (2) zachowaj kolejność wybierania (tzn. Ignoruj ​​pozycję na historii, kolejność poprzez Ctrl + kliknięcie, tak, że w powyższym przykładzie mógłbym wybrać najpierw linię # 2, wiersz # 1 sekundę i ta kolejność zostanie zachowana do wklejenia).

Zastosowania:

a) Rerun wcześniej wszedł plasterki kodu w konsoli;

b) skopiuj z historii konsoli do pliku skryptu.

Z góry dziękuję. Twoje zdrowie!

+0

pokrewne raport o błędzie na pycharm użytkownika bug tracker: https://youtrack.jetbrains.com/issue/PY-23114 – AXO

Odpowiedz

1

prostu napisać krótki kod, aby go odwrócić:

#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)) 

uwaga: Nigdy nie pracowałem z pycharm więc maay nie działać poprawnie dla bloków (if, for etc)

+0

Chociaż pomaga, nie rozwiązuje problemu całkowicie, ponieważ działa tylko wtedy, gdy chcesz zachować dokładną odwrotną kolejność. Jeśli chcemy zamienić kolejność kilku linii, należy to zrobić później. Ale to zdecydowanie lepsze niż to, z czym zacząłem. Powiedz, że chcę linii 1, 5, 10 i 15, ale napisane w kolejności 15, 10, 1 i 5. Ten przykład jest minimalistyczny, ale mam tego rodzaju sytuacji (z większą liczbą linii zaangażowanych i kilka nie odwracają się czasami .. –

+0

Kolejny przykład miejsca, w którym ulegnie awarii: Jeśli wprowadzono na konsoli polecenie wielowierszowe, powiedzmy polecenie z wpisami według linii: 'd = {k0: v0, \ n ' k1 : v1 \ n' 'k2: v2}' z twoim anwserem to również zostanie odwrócone, z zamknięciem '}' pojawiającym się przed otwarciem dyktatu 'd = {k0: v0,' Daję +1, ponieważ pomaga, ale nie akceptuję jako odpowiedzi jeszcze grzechu ce to nie rozwiązuje per se. Mimo to, wielkie dzięki! –