テキストエディターからの移行
このガイドは、Vim、Emacs、Sublime Text などのテキストエディターを使用する Python 開発者向けで、PyCharm への切り替えについての情報を提供します。 IDE の概念の簡単な説明が含まれており、次に具体的な違いについて説明します。
IDE とは何ですか?
Python 開発者は長い間、さまざまなツールを使ってコードを書いてきました。 境界線は曖昧ですが、これらのツールには、テキストエディターと統合開発環境 (IDE) という、大きく分けて二つの陣営があります。 テキストエディターは、単純化するために、1 つのファイルの編集に焦点を当て、非常に単純な操作性を提供します。
その名前が示すように、IDE はより広い視野を持っています。 彼らは、プロジェクト全体とコーディング関連のすべてのアクティビティを見て、一貫性のある強力な UI に統合したいと考えています。 これらの 2 つのセグメントは重複していますが、全体の範囲が主要な違いです。
PyCharm のような IDE は、プロジェクト、依存関係、プラットフォーム自体のすべてのコードを参照するため、コーディング活動を大きく支援できます。 この分析と支援は、多くの強力な機能で示されています。
自動補完はあなたのタイピングを終えることによって正確なコーディングをスピードアップします
クイックフィックスはよくある間違いを見つけ、言語特有の修正を提供します
コードインテンションは一般的な Python パターンの最適化と改善を提案します
コードリファクタリングは、頻繁に使用される Python の煩わしさを取り除きますリファクタリング
テンプレートは定期的なタスクを自動化します
コードナビゲーションはすべてのコードの構造とセマンティクスを分析し、それが使用するコードを分析して、ソフトウェア内を移動するための豊富な方法を提供します。
テキストエディターにもこれらの機能の一部はありますが、PyCharm は文字列操作を超えてコードや言語の セマンティクスに対応し、インテリジェントな支援を行います。 PyCharm は Python やコードを理解しているため、シンボルが定義されている場所やクラスが使用されている場所へのジャンプ、メソッドやその使用箇所のリファクタリングなどが可能です。 実際、これらの機能は Python を超えて拡張されています。IntelliJ ファミリーの仲間から、PyCharm はウェブ開発や他の多くの分野への一流 IDE サポートを継承しています。
これらのコーディング支援機能に加えて、PyCharm はバージョン管理、データベース管理、プロファイリング、テスト実行、リモート環境などの関連操作を同じ環境に統合します。 これらの各機能は統合された形で提供されます。たとえば差分を表示しながら変更を適用すると、自動でテストが再実行されることもあります。
この強力さは、製品志向の考え方に基づいています。すべてがそのまま動作します。 他のツールには さまざまな機能リストがありますが、それらをまとめて維持するのは自身の責任となります。 いじるのが好きな方にはそれでも問題ありません。 PyCharm を IDE として使う場合、これらの機能はそのまま動作し、年々プロフェッショナルなサポートが提供されます。
PyCharm インターフェース
PyCharm のような IDE はとても広い範囲を持つため、ユーザーインターフェース(UI)はシンプルなテキストエディターよりも多くの案内が必要です。 例えば、こちらが PyCharm における典型的なプロジェクトです:

ウィンドウヘッダーには、最も人気のあるアクションへの迅速なアクセスを提供するウィジェット(プロジェクトウィジェット、VCS ウィジェット、実行ウィジェット)が含まれています。 また、 Code With Me、 どこでも検索、 設定を開くこともできます。
左側の プロジェクトツールウィンドウにプロジェクトファイルが表示されます。
実際にコードを書く右側の エディター。 開いているファイル間を簡単に移動するためのタブがあります。
インターフェースの要素またはコードフラグメントを右クリックすると コンテキストメニューが開き、利用可能なアクションが表示されます。
ナビゲーションバーを使うことで、プロジェクトのフォルダーやファイルを素早く移動できます。
ガター 、エディター横の縦の帯は、保有しているブレークポイントを表示し、定義や宣言への移動など、コード階層を ナビゲートする便利な方法を提供します。 また、行番号と行ごとの VCS 履歴も表示されます。
エディターの右側にある スクロールバー。 PyCharmは コードインスペクションを実行してコードの品質を常に監視しています。 右上隅のインジケーターは、ファイル全体のコードインスペクションの全体的なステータスを示します。
ツールウィンドウはワークスペースの下部や側面に配置される専用ウィンドウです。 プロジェクト管理、ソースコードの検索とナビゲーション、バージョン管理システムとの統合、実行、テスト、デバッグなどの一般的なタスクへのアクセスを提供します。
ステータスバーはプロジェクトとIDE全体のステータスを示し、ファイルエンコーディング・改行コード・インスペクションプロファイルなど様々な警告や情報メッセージを表示します。 また、Python インタープリター設定にすばやくアクセスできます。

左側の プロジェクトツールウィンドウにプロジェクトファイルが表示されます。
実際にコードを書く右側の エディター。 開いているファイル間を簡単に移動するためのタブがあります。
ナビゲーションバーを使うことで、プロジェクトのフォルダーやファイルを素早く移動できます。
ガター 、エディター横の縦の帯は、保有しているブレークポイントを表示し、定義や宣言への移動など、コード階層を ナビゲートする便利な方法を提供します。 また、行番号と行ごとの VCS 履歴も表示されます。
エディターの右側にある スクロールバー。 PyCharmは コードインスペクションを実行してコードの品質を常に監視しています。 右上隅のインジケーターは、ファイル全体のコードインスペクションの全体的なステータスを示します。
ツールウィンドウはワークスペースの下部や側面に配置される専用ウィンドウです。 プロジェクト管理、ソースコードの検索とナビゲーション、バージョン管理システムとの統合、実行、テスト、デバッグなどの一般的なタスクへのアクセスを提供します。
ステータスバーはプロジェクトとIDE全体のステータスを示し、ファイルエンコーディング、改行コード、インスペクションプロファイルなどのさまざまな警告や情報メッセージを表示します。 また、Python インタープリター設定にすばやくアクセスできます。
また、PyCharmウィンドウの左下隅のステータスバーに または
というボタンが表示されます。 このボタンは、ツールウィンドウバーの表示を切り替えます。 このボタンの上にマウスを置くと、現在使用可能なツールウィンドウのリストが表示されます。
ツールウィンドウの表示と非表示の詳細については、 ユーザーインターフェース と ツールウィンドウ のページを参照してください。
それでも多すぎますか? テキストエディターから移行してスパルタンな外観を求める場合、PyCharm にはいくつかの解決策があります:
Windows とツールバーは必要になるまで隠すことができます
集中モードと他のモードは視覚的な問題の大部分を取り除いており、キーボードショートカットとアクション検索を介して行われるインタラクションを持つコードに焦点を当てています。
実際、PyCharm は現代的でシンプルな傾向を取り入れており、ほとんどの操作がキーボード中心かつ検索指向のインターフェースで行えます。 メニューをクリックせずにコードを整形したいですか? そのためのキーストロークも用意されていますが、 Ctrl+Shift+A を押すことでコードの整形のアクションを検索できます:

プロジェクト
前述の通り、PyCharm はファイル単位を超えて、プロジェクト全体をひとつのソフトウェアソリューションとして扱います。 プロジェクトに付随するソフトウェアだけではなく、関連するタスクも含みます。
プロジェクトにはこれらのアーティファクトだけでなく、他にもさまざまなものが含まれています。 プロジェクトでは、タブで 3 つのファイルを順番に開いている場合もあります。 この情報はプロジェクトのメタデータとして .idea サブディレクトリ(プロジェクトのルートフォルダー)に保存されます。そのため、次回プロジェクトを開くと、その構成が復元されます。 これは構成以外にも適用されます。PyCharm では編集中に 変更の保存と復元 が保存され、 ローカル履歴 によってコードを以前の状態に戻すこともできます。 PyCharm の IDE には、プロジェクトの構成の一部として多くの情報が含まれています。例えば、Python の設定やコード実行のシナリオ、データベースへの接続情報などです。
最初のプロジェクト
現在テキストエディターを使っている場合、PyCharm を初めて起動するとプロジェクト作成について尋ねられます。 あなたには数多くの選択肢と機会があります。 それらのいくつかについて議論しましょう。
まず、白紙の状態から始める場合や、ディスク上の既存のディレクトリから始める場合、またはまだチェックアウトしていないリモートリポジトリから始める場合があります。
次に、プロジェクトで使用したい Python インタープリターを 1 つ以上用意しておくと良いでしょう。 PyCharm は、ローカルにインストールされた Python 2 と 3 の両方、および仮想環境の作成や再利用をサポートしています。 また、Anaconda ベースのインタープリター、リモートインタープリター、Docker もサポートしています。 これらは、PyCharm の「新規プロジェクト」ウィザードを開始する前に設定することも、プロジェクト作成時に指定(または作成)することもできます。 プロジェクト作成後に変更することも可能です。
PyCharm Pro を利用すると、よく利用されるタイプのプロジェクトを簡単に開始できます。 例: Django プロジェクトを作成すると、Django のベストプラクティスに従ったディレクトリ構造が生成され、特別なツールウィンドウで Django サーバーを起動する「実行構成」が追加されます。

IdeaVim
長年の vim ユーザーは、エディターの使い方に多くの投資をしてきました。 幸い、JetBrains には IdeaVim(英語) と呼ばれる非常に強力で十分にサポートされている IntelliJ プラグインがあり、「IntelliJ プラットフォームに基づいた IDE の Vim エミュレーションプラグイン」として機能します。
このプラグインを使うと、PyCharm 内で Vim エミュレーター モードを利用できます。 詳細は上記の GitHub ページ、 Twitter アカウント 、および PyCharm IdeaVimの スクリーンキャストで確認できます。 少し古いですが、元 vim ユーザーによる詳細 なレビュー(英語)がこちらで確認できます。
PyCharm で PyCharm で Vim エディターを使用する (IdeaVim) を確認して、 IdeaVim プラグインの使い方を学んでください。
また、 vim を 外部ツールとして、 PyCharm: 現在のファイルを Vim、Emacs または Sublime Text で開くで説明されている手順に従い設定することもできます。
Emacs と emacsIDEAs
Emacs と vim は、ハードコア開発者に人気のある 2 つのテキストエディターです。 PyCharm は、多くの Emacs キーシーケンスと一致する キーマップを提供します。
PyCharm には Emacs 用の IdeaVim と同等のプラグインはありませんが、コミュニティには AceJump など Emacs やその拡張機能の便利な機能が利用できる emacsIDEAs というアクティブなプラグインがあります。
Emacs を PyCharm の 外部ツールとして設定し、ファイルの編集に利用できます。 このプロセスは このチュートリアルで説明されています。
カスタマイズと拡張
PyCharm の IntelliJ 基盤は非常に幅広く(その上に多くの IDE が構築されており)、非常に成熟しています。これによりもう一つの利点、つまり PyCharm が非常にカスタマイズしやすいことが挙げられます。 例: 「Darcula」と呼ばれるオプションの暗いテーマも提供し、エディターの最新のトレンドにマッチします。 ` ヘムを微調整するだけでなく、フォントサイズ、配色、ツールバー設定、バルーンの動作など、さまざまなルックアンドフィールオプションをカスタマイズできます。
「見た目」はカスタマイズオプションのほんの始まりです。 異なる バンドルキーマップへの切り替えについて説明しました。 キーマップはさまざまな方法で拡張・カスタマイズでき、異なるキー操作を違うアクションに割り当てることもできます。 さらに、PyCharm の挙動は、プラグインのインストールやアクション用のカスタム「テンプレート」、コードインテンションの変更などで拡張できます。
複数のカーソル
他のツールの開発者が自慢する強力な機能は複数カーソルです。 Sublime Text はこの概念の先駆者であり、この概念を IntelliJ プラットフォーム上のすべての IDE に追加しました。 PyCharm のマルチカーソルを使うと、複数のキャレットを利用でき、IDE の操作が各キャレットに反映されます。 これは PyCharm 複数選択スクリーンキャストで詳しく紹介されています。
タブと分割ウィンドウ
Emacs や vim などの成熟したテキストエディターは、画面を複数の領域に分割して複数のファイルを一度に表示できる豊富な方法で有名です。 これらのツールは基本的なものにとどまらず、豊富な方法でこれらの領域の間を移動したり、縦または横に分割したり、再分割したり、キーボードからすべてを行うことができます。
PyCharm には複数ファイル表示用の 成熟した機能セットも用意されています。 最も基本的なところでは、複数ファイルをタブで開き、手動で並び替えたり、アルファベット順でソートしたりできます。 タブはピン留めしたり、別ウィンドウに分離することもできます。
タブだけでなく、エディターウィンドウを 分割して、独立した複数のペインで複数のファイルやタブを同時表示できます。 分割は垂直または水平に行うことができます。 タブを反対側のグループに移動すると、現在開いているファイルを並べ替えることができます。

最後に、上記のすべてをキーボード中心の方法で行うことができ、マウスを使用せずに複数のファイルやウィンドウで簡単に作業できます。
実行コード
テキストエディターも Python コードの実行を行う機能を持っていますが、PyCharm は 実行構成という仕組みでさらに多くのことができます。 これらにより、Python(または JavaScript などの他の言語)コードの実行に関連するパラメーターを定義できます。 その後、その実行構成を実行すると、関連付けられているすべての設定が適用されます。
さらに PyCharm は、停止や再実行など実行中のコード操作に多機能な専用ツールウィンドウでコードを実行します。 出力はミニコンソールに表示され、エラーはそのファイルの行番号に移動するためにクリックできる行でトレースバックを示します。 このツールウィンドウは、コードの実行と再実行と同様に、キーボードからも操作できます。
これらの実行構成は、テスト出力の表示、ビジュアルデバッガーによるデバッグ構成、テストカバレッジ実行構成、プロファイラ実行構成、さらには並行処理ダイアグラムコンフィギュレーションなど、特別な種類の実行にも適用されます。 これらはすべて、プロの Python 開発者のワークフローに本当の価値をもたらします。
最後に、PyCharm Pro はサポートするフレームワークごとに新しいタイプの実行構成を追加しています。 たとえば、Pyramid の実行構成は、Pyramid の構成ファイルと Pyramid 固有の機能を認識します。
生産性のヒント
- コマンドラインから実行する
PyCharm は通常、他のアプリケーションと同様に(デスクトップから)起動しますが、 コマンドラインから PyCharm を操作することもできます。これらは初回インストール時に設定できます。 たとえば Linux や macOS では、/usr/local/bin/charm を使って PyCharm でファイルを開くことができます。 インスペクションを実行したり、PyCharm の差分ツールを使用することもできます。
- 単一ファイルを開く
特定のファイルを開くためにプロジェクトを作成する必要はありません。 PyCharm の オープン メニュー(やコマンドラインの「charm」プログラム)で、特定のファイルを既存プロジェクトのウィンドウまたは新規のウィンドウで開くことができます。
- スクラッチファイル
コードやテキストのスニペット用に一時的なエディターがほしい場合で、プロジェクトやファイルに保存したくないなら、PyCharm には スクラッチという機能があります。 スクラッチファイル(言語に関連付けられているため、構文がハイライトされている、コード補完である、実行可能であるなど)またはスクラッチバッファ(小さなテキストの塊)のいずれかを作成できます。
これらのスクラッチには多くの機能があります:一覧表示(最大 5 つまで)、クローズや削除、言語の関連付け、再整理が可能です。 スクラッチはプロジェクト内の特別な領域に保存されます。
- 組み込みヒント
PyCharm を初めてインストールすると、起動時に毎回フレンドリーなヒントが表示されます。 これらのヒントをオフにすることもできます。 後で さらにヒントを表示したい場合は、メインメニューで を選択します。
- プラグインのインストール
これまで何度か説明してきた通り、PyCharm や IntelliJ には IDE プラグインの膨大なエコシステムがあります。 PyCharm 自体も、さまざまなカテゴリをカバーした約 500 個のプラグインがあります。
実際、PyCharm IDE 自体もプラグインで構成されています。 そのため、例えば PyCharm では WebStorm から多くのウェブ機能を継承しています。これらはプラグインを通じて同じコア機能を共有しています。
PyCharm の設定ダイアログから、 プラグインの参照、インストール、更新、削除ができます。 また、PyCharm 本体とあわせてプラグインの更新も自動的に確認されます。 プラグインが更新された場合は、ダウンロードと PyCharm の再起動を求められます。
- ポリグロット開発
テキストエディターは Python 以外の多数の言語もサポートしますが、PyCharm は Python 以外でも強力な機能を提供できる点が特徴的です。 例えば、PyCharm は一流の Web 開発 IDE です。 構文のハイライトや HTML、CSS、JavaScript の自動補完だけではありません。 セマンティックアウェアコードインスペクション、リファクタリング、デバッグ、ライブサーバーの起動、SASS ファイルの CSS への翻訳、npm 実行スクリプトの閲覧など、あらゆる機能を提供します。
これはウェブ開発以外にも IPython Notebook のエミュレーションや reStucturedText などに適用されます。 PyCharm でどうしてこうしたことができるのでしょうか? 前述のとおり、JetBrains の他の IntelliJ ベース IDE 同様にプラグインを共有しています。
- ミニマップ
Sublime Text や Visual Studio(アドオン経由)などの他のツールは、大きなドキュメントをスクロールするビジュアルモードを提供します。 これで、通常のスクロールバーは、ドキュメントのグラフィカルサムネイルとその中の現在のスクロール位置に置き換えられます。
PyCharm ユーザーも、選択したテーマに合わせて作成された JetBrains プラグイン CodeGlanceで同様の機能を利用できます。
追加リソース
PyCharm の ホームページ、 PyCharm ブログ、 Twitter アカウント。
コミュニティフォーラムや StackOverflow のトピックで質問ができます。