2016-04-15 10 views
7

In Pycharm, la cronologia della console ha le voci dalla più recente (in alto) alla più vecchia (in basso). Il che va bene in un certo senso, ma è orribile copiare copia di diverse righe di codice dalla cronologia. Quello che succede è che il flusso del codice viene capovolto quando si copia dalla cronologia. Fondamentalmente, devi copiare + incollare una riga alla volta, a costo di aprire la cronologia e scorrere alla riga desiderata ogni volta.Come invertire l'ordine cronologico della console in pycharm per l'incollatura copia?

Non importa se Ctrl seleziona le linee nell'ordine in cui si desidera che vengano reinserite. Il pop-up della cronologia della console li ordinerà secondo l'ordine mostrato (vale a dire, il più recente in alto, il più vecchio in basso).

Esempio: Say è stato eseguito le seguenti due righe su console

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

Quando si guarda in su sulla storia, questo è quello che vedrete:

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

Quindi, se si seleziona queste due righe per incollarlo nella console o nel tuo script, saranno nell'ordine errato, spezzando il flusso del codice.

Ho cercato un modo per: (1) invertire la modalità di visualizzazione della cronologia della console (ad esempio, la più vecchia (in alto) la più recente (in basso)). (2) preservare l'ordine di selezione (ad esempio, ignorare la posizione nella cronologia, ordinare con Ctrl + clic, in modo che nell'esempio precedente potrei selezionare prima la linea n. 2, riga n. 1 e questo ordine verrà conservato per incollare).

Applicazioni:

a) Eseguire nuovamente entrato in precedenza fette di codice in console;

b) copiare dalla cronologia della console al file di script.

Grazie in anticipo. Saluti!

+0

rapporto bug correlati su PyCharm di bug tracker: https://youtrack.jetbrains.com/issue/PY-23114 – AXO

risposta

1

Basta scrivere un breve codice per invertire tale tendenza:

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

nota: non ho mai lavorato con PyCharm quindi questo maay non funziona correttamente per i blocchi (if, for ecc)

+0

Anche se aiuta, non risolve completamente il problema poiché funziona solo se si desidera mantenere l'esatto ordine inverso. Se si desidera scambiare l'ordine di alcune righe, è necessario farlo in seguito. Ma è decisamente meglio di quello che ho iniziato. Dire che voglio le linee 1, 5, 10 e 15, ma scritte nell'ordine 15, 10, 1 e 5. L'esempio è minimalista ma io ho questo tipo di situazione (con un numero maggiore di linee coinvolte e poche –

+0

Un altro esempio di dove si sarebbe suddiviso: Se si è immesso sulla console un comando multilinea, pronunciare un comando con le voci per riga: 'd = {k0: v0, \ n ' k1 : v1 \ n' 'K2: v2}' con l'anwser questo sarebbe invertita pure, con la chiusura ''} che precede il dict di aprire 'd = {K0: V0,' sto dando un +1 poiché aiuta, ma non accetto come risposta ancora peccato ce non lo risolve di per sé. Tuttavia, grazie mille !!! –