nykergoto’s blog

機械学習とpythonをメインに

Pycharmの便利機能まとめ

ショートカット

一般

コマンド 内容
Shift + ⌘ + Delete 最後に更新した場所にジャンプ
Shift + ⌘ + F7 現在開いているファイル内で、カーソルが当てられている変数が使用されている場所をハイライト。その状態で ⌘ + G を押すとつぎに使われている場所にジャンプできる。
⌘ + ↑ ナビゲーションバーにカーソルが移動する。同じフォルダの他のファイルを開きたいときに, 左のディレクトGUIをマウス操作しなくて済む。⌘+ ↓でソースにカーソルを戻せる。
⌘ + K コミットの変更と差分をGUIで見れる。

関数, クラスの情報

この関数の定義どうなってるのか, 変数何使えばいいのか, とかのときに使えるコマンド

コマンド 内容
⌘ + P パラメータ情報の取得
⌘ + B 関数が定義されているファイルを開く
F1 クイックドキュメントを開く

Code

コマンド 内容
Option + ⌘ + T その部分を制御構文で囲う。ある処理を try/except でエラーキャッチしたいときに便利。(他にも while とか try/finally とかもある。)

Refactor

コマンド 内容
Control + O 継承クラスでの関数のオーバーライドをGUI上で選択できる。
Shift + F6 変数名の変更。その変数が使われているファイルを自動で検索してすべて置換できるのでとても便利🍺

補間

コマンド 内容
Control + O 変数名の補間。

便利機能

編集履歴

git とは別に Pycharm 自体が編集履歴を保存している。 VCS -> Local History -> Show History を開くと過去の編集ログを一括でみることができる.

git には残らない細かい粒度でのログを見たいときや, 前の状態に戻したいけど commit してない... みたいな事故が起こったときに使える 。(本当はそういうことが起こってはだめですが)

.gitignore の自動生成

⌘+N で新規ファイル作成をする際, 下の方にある .ignore を選択し git を選ぶと gitignore ファイルの生成を行える。 用いている言語によってそれぞれ ignore が設定されているので、必要な物を検索してチェックボックスにチェックを入れるとよしなな ignore が完成する。

Terminal

Option + F12 でプロジェクトフォルダに

pycharm での docstring の書き方

参考: https://www.jetbrains.com/help/pycharm/2017.1/type-hinting-in-pycharm.html

基本的に python において docstring の書き方は一通りではないが、 pycharm が推奨する docstring の形式があり, それに準拠すると型チェックを自動でおこなってくれる.

シンタックス 意味
Foo Class Foo visible in the current scope
x.y.Bar Class Bar from x.y module
Foo | Bar Foo or Bar
(Foo, Bar) Tuple of Foo and Bar
list[Foo] List of Foo elements
dict[Foo, Bar] Dict from Foo to Bar
T Generic type (T-Z are reserved for generics)
T <= Foo Generic type with upper bound Foo
Foo[T] Foo parametrized with T
(Foo, Bar) -> Baz Function of Foo and Bar that returns Baz
list[dict[str, datetime]] List of dicts from str to datetime (nested arguments)

def put_image_to_s3(image,
                    bucket_name,
                    directory="image",
                    extension="JPEG"
                    logdir=None):
    """
    PIL形式の画像を s3 に upload する
    :param Image.Image image: PIL image file
    :param str bucket_name: upload先のバケット名
    :param str directory: バケットでのディレクトリ
    :param str extension: ファイルの拡張子. 今は `JPEG` のみ対応
    :param str | None logdir: 
        アップロード中のログを出力するディレクトリへのパス. 
        `None` のときログを出力しない. 
    :return: url to uploaded image file
    :rtype str
    """
    # 以下実装 ~~