2016-04-15 6 views
7

Pycharmでは、コンソール履歴には、最新(上)から最古(下)までのエントリがあります。ある意味では問題ありませんが、履歴からいくつかのコード行をコピーするのは恐ろしいことです。 履歴からコピーするときに、コードフローを上下逆にすることがあります。基本的には、一度に1つの行をコピー+ペーストしなければなりません。履歴を開き、毎回目的の行にスクロールします。コピー貼り付けのpycharmのコンソール履歴の順序を逆転する方法は?

Ctrlキーを使用して行を再入力したい順序で選択しても問題はありません。コンソールの履歴ポップアップでは、表示された順番に並べ替えられます(つまり、一番新しいもの、一番下のもの)。

例:

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

だから、あなた場合: あなたが

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

あなたが歴史上でそれを見ると、これはあなたが表示されますものですコンソールに次の2行を走ったと言いますそれらの2行をコンソールまたはスクリプトに貼り付けるために選択すると、不正な順序でコードフローが分割されます。

私は、いずれかの方法を検索しました: (1)コンソールの履歴がどのように表示されるか(つまり、最古(上)〜最新(下))のいずれかを検索しました。 (2)順序の選択を維持する(つまり、履歴の位置を無視する、Ctrlキーを押しながらクリックする、上記の例では#2行を最初に選択し、#1行目を選択して貼り付ける)。

アプリケーション:

A)を再実行し、以前にコンソールでコードスライスに入りました。

b)コンソール履歴からスクリプトファイルにコピーします。

ありがとうございます。乾杯!

+0

Pycharmの上の関連バグレポートバグトラッカー:https://youtrack.jetbrains.com/issue/PY-23114 – AXO

答えて

1

ちょうどそれを逆に短いコードを書く:

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

注:このmaayはブロック(ifforなど)のために正常に動作しないので、私はpycharmで働いたことはない

+0

正確な逆順を保つ必要がある場合にのみ機能するので、問題の解決には役立ちますが、問題は完全に解決されません。数行の注文を交換したい場合は、それ以降に行う必要があります。 しかし、それは私が始めたものよりもはるかに優れています。 私は1,5,10,15行目が欲しいと言っていますが、15,10,1、および5の順番で書かれています。 例は最小限ですが、このような状況があります(多くの行が関与し、 –

+0

別の例: コンソールに複数行のコマンドを入力した場合は、行ごとにエントリを持つdictを入力してください: 'd = {k0:v0、\ n ' k1 :v1 \ n ' 'k2:v2}' あなたのアンサーではこれも逆になりますが、 '}はdictを開く前に表示されます' d = {k0:v0、 ' それは助けてくれる+1ですが、私はまだ答えとして受け入れていませんそれはそれ自体では解決しません。それにもかかわらず、おかげさまで多くの!!!! –

関連する問題