PyCharm 2024.1 ヘルプ

コード補完

このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。

基本補完

基本コード補完は、可視性スコープ内のクラス、メソッド、キーワードの名前を完成させるのに役立ちます。

コード補完を呼び出すと、PyCharm はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します (提案にはライブテンプレートも含まれます)。

基本コード補完がフィールド、パラメーター、変数宣言の一部に適用されている場合、PyCharm は項目型に応じて可能な名前のリストを提案します。

基本コード補完を 2 回呼び出すと、依存関係に関係なく、プロジェクト全体のクラス、関数、モジュール、変数の名前が表示されます。

基本補完を呼び出す

  1. 名前の入力を開始します。

  2. Ctrl+Space を押すか、メインメニューからコード | コード補完 | 基本を選択してください。

    以下のイメージは、次の場合の基本的なコード補完を示しています。

    • メソッド:

      Completing Method
    • メソッドパラメーター:

      Completing method parameters
    • 辞書:

      Completing Dicts
    • Django テンプレート:

      Completing Filter
    • Python 文字列リテラルのファイルパス補完:

      Path completion
      Path completion
  3. 必要に応じて、Ctrl+Space を 2 回押します(または Ctrl+Alt+Space を押します)。

    これは、クラス、関数、モジュール、変数の名前を表示します。

    Class name completion

型一致補完

スマート型一致コード補完は候補リストをフィルタリングし、現在のコンテキストに該当するタイプのみを表示します。

型一致補完を呼び出す

  • スマート型一致コード補完は候補リストをフィルタリングし、現在のコンテキストに該当するタイプのみを表示します。型一致補完を呼び出すには、コードの入力を開始して Ctrl+Shift+Space を押します。あるいは、メインメニューからコード | コード補完 | 型一致を選択します。

Smart type completion

ステートメント補完

ステートメント補完 Ctrl+Shift+Enter を使用して、構文的に正しいコード構成を作成できます。必要な構文要素を挿入し、次のステートメントの入力を開始できる位置に移動します。

メソッド宣言を補完する

  • メソッド宣言の入力を開始し、左括弧の後に Ctrl+Shift+Enter を押します。

    PyCharm は、必須パラメーター self を使用してメソッド宣言を自動的に補完します。Python クラスでメソッド宣言の入力を開始すると、PyCharm はパラメーターリストの左括弧の後に self を挿入します。この動作は、エディター設定のスマートキーページで構成できます。

    Statement completion for a method

コード構成を補完する

  • コード構成の入力を開始し、Ctrl+Shift+Enter を押します。

    PyCharm は、構成を自動的に補完し、必要な句読点を追加します。キャレットは次の編集位置に配置されます。

    Completing code construct

コレクション内の完全なステートメント

  • PyCharm は、複数行のコレクションリテラルの改行の前に末尾のコンマを自動的に挿入します。辞書リテラルでは、キーと値の間にコロンが挿入されます。Ctrl+Shift+Enter を押してステートメント補完を呼び出します。

    Completing a current statement in collections

    一部の不完全なコレクションリテラルの構文に関する言語のあいまいさのため、dict リテラルの最初のキーの後、括弧で囲まれたタプルの最初の項目の後にコロンが挿入されることに注意してください。

ヒッピー補完

ヒッピー補完は、目に見える範囲でテキストを分析し、現在のコンテキストから提案を生成する補完エンジンです。それは現在開いているファイルのどれからでもどんな単語でも完成させるのに役立ちます。

キャレットの文字列を既存の単語に展開する

  1. 最初の文字列を入力し、次のいずれかを実行します。

    • Alt+/ を押すか、コード | コード補完 | 単語の補完を選択して、キャレットの前に一致する単語を検索します。

    • Alt+Shift+/ を押すか、コード | コード補完 | 単語の補完(後方)を選択して、キャレットの後ろにある他の開いているファイルで一致する単語を検索します。

    提案された最初の値が表示され、プロトタイプがソースコードでハイライトされます。

    Expand word
  2. 提案を受け入れるか、Alt キーを押しながら希望の単語が見つかるまで / を押し続けます。

後置コード補完

後置コード補完を使うと、コードを書くときの後方キャレット移動を減らすことができます。すでにタイプされた式は、ドット、式のタイプ、そのコンテキストの後に入力する接尾辞に基づいて別のものに変換できます。

後置の補完を有効にして設定する

  • 設定ダイアログ (Ctrl+Alt+S) で、エディター | 一般 | 後置補完を開き、後置補完を有効にするチェックボックスを選択します。

  • 接尾辞テンプレートの展開に使用する TabSpaceEnter を選択します。

  • 選択した言語の特定の接尾辞テンプレートを有効 / 無効にします。

後置でステートメントを変換する

  • 式を入力し、ドットの後に接尾辞を入力します(例: .if:)。

    def f(a): a.if

    最初の式は if ステートメントでラップされます。

    def f(a): if a:

設定 Ctrl+Alt+Sエディター | 一般 | 後置補完ページで、特定の接尾辞補完テンプレートを無効にすることができます。

TabSpaceEnter を選択して、接尾辞テンプレートを展開できます。

たとえば、長いキーを短いキーに置き換えるか、適用可能な式の種類のリストを展開するなど、あらかじめ定義されたポストフィックステンプレートを編集できます。

カスタム後置テンプレートを作成する

  1. Ctrl+Alt+S を押して設定を開き、エディター | 一般 | 後置補完を選択します。

  2. ツールバーの追加ボタン (the Add button) をクリックします。

  3. 開いたポップアップメニューで、接尾辞テンプレートを作成するために必要な言語を選択します。

  4. テンプレートを呼び出すシンボルの組み合わせであるキーを指定します。

  5. 新しいテンプレートを適用できる式の種類を選択し、ターゲットの式を次の形式で入力します: $EXPR$ <target_expression>、たとえば [x for x in $EXPR$]

    テンプレートが適用された後にキャレットを配置する $END$ を追加します。たとえば、次のようになります。

    [x$END$ for x in $EXPR$]
    Create a custom postfix template
  6. テンプレートが呼び出されたときに PyCharm が最上位の適用可能な式を自動的に変換するようにするには、一番上の式に適用チェックボックスを選択します。

    それ以外の場合、チェックボックスがオフになっていると、PyCharm は、テンプレートを呼び出すときに式を選択するように求めます。

    apply custom postfix template

F-string 完成

通常の文字列リテラルで波括弧を開くと、PyCharm は f-string と同じ補完候補を提供します。提案されたオプションの 1 つを選択すると、欠落している f プレフィックスと終了波括弧を追加することにより、IDE はリテラルを f-string に自動的に変換します。

F-string completion

モジュール名の補完時に自動インポート

Python コードでモジュールメンバーまたはパッケージを参照してコード補完を呼び出すと、PyCharm は自動的にインポートステートメントを追加します。コード補完での自動インポートは、numpy の場合は nppandas の場合は pd など、いくつかの一般的なパッケージ名エイリアスにも適用されます。

Auto-import on code completion

機械学習による完了ランキング

PyCharm を使用すると、他のユーザーが同様の状況で行った選択に基づいて、補完の提案に優先順位を付けることができます。

ML 完了メカニズムは新しい要素を追加しませんが、コードから取得した要素を順序付けます。データはどこにも公開されていません。ローカルで収集されます。

ML 完了を有効にする

  1. Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。

  2. 機械学習完成度ランキングで、機械学習に基づいてコード補完の候補を並び替えオプションを有効にし、ML 補完を使用する言語を選択します。

    ML-assisted completion settings

関連性マーカーを有効にする

  1. Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。

  2. 次のオプションを有効にします。

    • 補完ポップアップで順位の変更箇所に印を付ける : Machine Learning ranking Up および Machine Learning ranking Down アイコンを使用して、提案の関連性が増加しているか減少しているか、つまり提案が候補リスト内で上または下に移動したかどうかを示します。

    • 補完ポップアップで最も関連性の高い項目に印を付ける : ML relevant proposal アイコンを使用して、リスト上の最適な提案を示します。

    候補リストは次のようになり、アイコンは並べ替えられたことを示し、最も関連性の高いアイテムが表示されます。

    ML completion is enabled

行全体コード補完

行全体コード補完は、エディターにコードを入力すると提案を表示します。提案は灰色の斜体で表示されます。提案を受け入れるには、Tab を押します。

Full line completion

IDE はすべての提案をフォーマットし、必要な括弧と引用符を追加します。

サポートされている各言語には、独自のコードチェックセットが提案されています。未解決の参照チェックなどの最も基本的なチェックは、ほとんどの言語で利用可能であり、IDE が存在しない変数やメソッドを提案しないことを保証します。

行全体補完は自動インポートをサポートし、スマートフィルタリングを使用して、明示的にキャンセルされる傾向のある提案や、承認された直後に削除される傾向のある提案が表示されないようにします。

行全体コード補完の使用を開始する前に、次の点に注意してください。

  • 行全体コード補完は現在リモート開発ではサポートされていません。

  • 行全体コード補完には、64 ビットプロセッサーまたは AVX2(英語) をサポートする x86 プロセッサーを搭載したコンピューターが必要です。

行全体補完を有効にする

  1. Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。

  2. 機械学習支援による補完セクションで、行全体の提案を有効にするを選択し、行全体補完を使用する言語を選択します。

    Python のモデルは PyCharm にバンドルされています。

    一部の言語(CSS や Javascript/Typescript など)では、補完を有効にするために「モデルのダウンロード」をクリックしてモデルを手動でダウンロードする必要があります。

    Enabling full line code completion

行全体補完は、コンピューターにダウンロードされたモデルを使用してローカルで実行されます。これらのモデルを更新する方法は、モデルのダウンロードドロップダウンリストから選択できます。モデルを自動または手動で更新したり、通知で更新を確認したりできます。

行全体補完を構成する

  1. 提案の上にマウスを移動します。

  2. 表示されるポップアップで、 をクリックし、提案を受け入れるために使用するキー(例: Right)を選択します。

    独自のショートカットを割り当てるには、カスタムを選択します。

    Full line code completion popup
  3. 行全体補完設定にすばやくアクセスするには、ポップアップで をクリックします。

コード補完設定の構成

コード補完オプションを構成するには、設定 Ctrl+Alt+Sエディター | 一般 | コード補完ページに移動します。

次の設定を選択できます。

項目

説明

大 / 小文字を区別する

補完候補で大文字と小文字を考慮するかどうかを選択します。最初の文字の大文字と小文字を一致させるか、すべての文字を一致させるかを選択します。

単一の候補を自動的に挿入

基本的でスマートな型一致補完の提案が 1 つだけある場合は、コードを自動的に補完します。

候補をアルファベット順に並べ替え

候補リスト内の項目を関連性によって並べ替えるのではなく、アルファベット順に並べ替える場合に選択します。

この動作は、候補リストの をクリックして名前で並べ替えオプションを切り替えることで、いつでも変更できます。

入力時に候補を表示する

補完を明示的に呼び出すことなく、候補リストを自動的に呼び出す場合に選択します。このオプションはデフォルトで有効になっています。

スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入する

選択した候補を挿入する場合は、言語、コンテキストなどに依存する特定のキーを入力して選択します。

ドキュメントのポップアップ表示までの時間

選択すると、現在ルックアップリストでハイライトされているクラス、メソッド、フィールドのドキュメントを含む、候補リストの各項目のポップアップが自動的に表示されます。

右側のフィールドで、ポップアップが表示されるまでの遅延(ミリ秒)を指定します。

可能な場合は丸括弧を自動的に挿入

このオプションが有効になっている場合、関数 / メソッドを完了すると、PyCharm は開き括弧と閉じ括弧のペアを自動的に挿入します。

Insert parentheses on completion is enabled

チェックボックスをオフにすると、括弧の挿入が自動的に抑制されます。

Enter の代わりに開き括弧 ( を使用して、補完リストから選択した項目を適用すると、オプションがオンかオフかに関係なく、括弧が自動的に挿入されます。

Insert parentheses on completion is disabled. Parentheses are still inserted on completion with an opening brace.

Enter の代わりに開き括弧 ( を使用して、補完リストから選択した項目を適用するには、設定ダイアログ (Ctrl+Alt+S) を開き、エディター | 一般 | コード補完に移動して、スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入するチェックボックスを選択します。

詳細は、特定のキーを使用して提案を挿入するを参照してください。

補完のヒントとテクニック

補完ポップアップから完了設定を開く

補完ポップアップから直接コード補完設定にすばやくアクセスできます。

  • 補完ポップアップで アイコンをクリックし、コード補完設定を選択します。

    Opening completion settings

その後、Ctrl+Alt+S の設定のエディター | 一般 | コード補完ページが開きます。

候補リストを絞り込む

  • 単語の任意の部分 (途中の文字でも) を入力するか、ドット区切り文字の後にコード補完を呼び出すことで、候補リストを絞り込むことができます。PyCharm は、任意の位置に入力した文字を含む候補を表示します。

    これはワイルドカードの使用を不要にします:

    codeCompletionWildcard.png

    CamelCase または snake_case 名の場合は、最初の文字のみを入力してください。PyCharm は自動的に頭文字を認識して照合します。

提案を受け入れる

次のいずれかの方法で、リストから提案を受け入れることができます。

  • Enter を押すか、リスト項目をダブルクリックして、キャレットの左側に挿入します。

  • Tab を押して、キャレットから右にある文字を置き換えます。

  • Ctrl+Shift+Enter を使用して、現在のコード構成を構文上正しいものにします(括弧のバランス、欠落している中括弧とセミコロンの追加など)。

  • 特定のキーとカスタム文字を使用して、選択した補完候補を受け入れることもできます。これらの機能を有効にするには、設定 Ctrl+Alt+Sエディター | 一般 | コード補完ページに移動し、次の操作を行います。

    1. 特定のキーを使用するには、スペース、ドット、その他のコンテキスト依存キーを押して、選択した候補を挿入しますチェックボックスをオンにします。これらのキーは、言語、コンテキストなどによって異なります。

    2. カスタム文字も使用するには、完了を受け入れるための追加文字フィールドに文字を入力します。

リファレンスを表示する

  • 候補リストのエントリを選択するときに Ctrl+Shift+I を押すと、クイック定義ビューを使用できます。

    Quick definition
  • 候補リストのエントリを選択するときに Ctrl+Q を押すと、クイック情報ビューを使用できます。

    Quick documentation

コード階層を表示する

候補リストからエントリを選択すると、コード階層を表示できます。

  • Ctrl+H - 型階層の表示

  • Ctrl+Shift+H - メソッドの階層を表示します。

トラブルシューティング

コード補完が機能しない場合は、次のいずれかの理由が考えられます。

  • 省電力モードがオンです(ファイル | 省電力モード)。これをオンにすると、エラーハイライト、オンザフライインスペクション、コード補完などのバックグラウンド操作を排除してラップトップの電力消費を最小限に抑えられます。

  • ファイルがコンテンツルートに存在しないため、コード補完に必要なクラス定義とリソースを取得できません。

    詳細は、プロジェクト構造の設定を参照してください。

  • 補完候補リストに表示するクラスと関数を含むファイルは、プレーンテキストファイルとしてマークされます。

  • 補完候補リストに表示する関数を含む外部ライブラリは、依存関係またはグローバルライブラリとして追加されません。

  • 補完オプションの収集に時間がかかりすぎると、コード補完ポップアップが自動的に表示されないことがあります。例: コンピューターが別のタスクでビジー状態の場合。この場合、Ctrl+Space ホットキーを介して手動で補完ポップアップを有効にすることができます。

関連ページ:

ライブテンプレート

ライブテンプレートを使用して、ループ、条件、宣言、print ステートメントなどの一般的な構造をコードに挿入します。コードスニペットを展開するには、対応するテンプレートの省略形を入力してを押します。を押し続けると、テンプレート内の 1 つの変数から次の変数に移動します。を押して、前の変数に移動します。次の例は、カスタムライブテンプレートの使用方法を示しています。ライブテンプレートの種類:次のタイプのライブテンプレートが区別されます。シンプルなテンプレートには固定プレーンテキストのみが含ま

ファイルタイプの関連付け

PyCharm は、さまざまな言語やテクノロジを表すファイルの言語固有の機能(構文のハイライトやコード分析など)について、ファイルタイプのリストを保持します。各ファイルタイプは、言語サービスを 1 つ以上のファイル名パターンにリンクします。ファイルタイプのデフォルトリストには、関連するすべてのファイル名パターンが含まれていますが、カスタム言語ファイルに新しいファイルタイプを追加したり、既存のファイルタイプに関連付けられたファイル名パターンを変更したりできます。エディターでファイルを開くと、PyC...

リモート開発の概要

リモート開発では、シンクライアントで IDE インターフェースを使用しながら、強力なリモートホストを使用して、プロジェクトのチェックアウトとロード、インデックス作成、分析、ビルド、実行、デバッグ、コードのテストを行うことができます。リモートホストは、ソースコードをホストし、ヘッドレス PyCharm インスタンスを実行する物理(Linux)または仮想マシンです。ラップトップなどのシンクライアントはホストに接続し、すべての IDE 機能へのフルアクセスを透過的に提供します。アーキテクチャと定義:...

エディターで AI を使用する

エディターでコードを生成する:コードを生成し、エディターでプロンプトを直接使用します。変更したいコードの一部を選択するか、エディター内の任意の場所にキャレットを置いて、を押します。または、右クリックしてコンテキストメニューを開き、AI アクションを選択してからコードの生成を選択します。入力フィールドにプロンプトを入力し、を押します。生成されたコードは別の AI の差分タブで開きます。生成が完了するまで待ちます。右上隅で、提案された変更を確認する方法を選択します。統合ビューでは、結果が 1 つ...

定義と型定義

PyCharm では、クラス、フィールド、メソッド、関数、タグなどのシンボルがプロジェクト内のどこでどのように定義されているかを確認できます。この目的のために、IDE はクイック定義ポップアップを備えています。キャレットでシンボルの定義を表示エディター内のシンボルにキャレットを置き、を押します (またはメインメニューでクリックします)。あるいは、キーを押したまま、任意の記号の上にマウスを置きます。PyCharm はシンボルをリンクとして表示し、その定義をツールチップに表示します。このリンク...

プロジェクト構造の設定

PyCharm では、コンテンツは現在作業しているファイルのコレクションであり、サブフォルダーの階層に編成されている可能性があります。プロジェクトの最上位フォルダーは、そのコンテンツルートです。コンテンツルート内では、PyCharm はソースコードを含むフォルダーと、検索、解析、監視などの際に無視されるフォルダーを区別できます。さまざまなタイプのフォルダーを区別するには、コンテンツルートのフォルダーをソースフォルダーまたは除外フォルダーとしてマークします。ソースルートには、実際のソースファイルとリ...