LoginSignup
29
24

More than 5 years have passed since last update.

PyCharm(IntelliJ)の機能を使い倒すTips集

Posted at

前置き

JetBrains社の開発するPyCharm(IntelliJ Idea)等の製品は強力な補完を行うことができる高機能なIDEです。

一方で高機能ゆえに、「使いこなせていないなぁ」と感じる方も多いのではないでしょうか。

本記事では、自分のよく使う機能をgif付きでまとめます。

また、最近はJetBrains製品の公式マニュアル日本語βが公開されています。合わせてこちらも押さえておくと良いと思います。

最新は本家公式を追うとよいです

環境

  • PyCharm 2018.3.4 (ProfessionalEdition)

筆者環境の都合によりMacのみショートカット記載します

Tips

以下よく使う順で書いていきます。

機能名については検索性を考え、極力公式の英語に合わせることとします。

また、 「この機能クールだぜ」「この機能これにキーマッピングすると便利」 など情報あれば教えてください。

とくに自分が全然知らないのはHTTP ClientやFavoriteのあたりです。StructureViewも詳しいことは知らないです。

Search Everywhere

  • Shiftを2回押す

ファイル名とかディレクトリ名とかClass名とかPJのテスト実行設定等を対象に検索する

基本的にファイル開く動作はこれ

searcheverywhere.gif

ShowIntentionActions

  • Alt + Enter

赤線、黄色線出てるところで使うとそのコードに対して行える操作一覧が出る

どう考えても Alt + Enterは押しづらいので Ctrl + Enter などに変えるのがおすすめ

加えて Down / UpCtrl + N / P に設定しておくとキーボードから手を離さずに修正できる
intentionaction.gif

Find

  • Cmd + F

ファイル内検索
find.gif

FindinPath

  • Cmd + Shift + F

PJ以下に対してファイル横断検索
findinpath.gif

ReformatCode

  • Cmd + Option + L

PJ固有設定にそってコード整形する

拡張子によってやることは自動で変わる

例えばeslintとかの設定は見てくれたはず
reformat.gif

OptimizeImport

  • Cmd + Option + O

import文などをいい感じに並び替えてくれる

拡張子によってやることは自動で変わる
optimize.gif

AutoIndentLine

  • Cmd + Option + I

PJ固有設定にそってコード整形する

拡張子によってやることは自動で(ry

ReformatCodeしてれば使うことない気がする
autoindent.gif

GotoNextError / GotoPreviousError

  • 初期設定なし

赤線、なければ黄色線にカーソル移動する

ShowIntentionActionsと組み合わせると爆速で修正できるのに加えて、エラーがないことの確認としても使う

IdeaVim 使ってるのであればノーマルモードの cn/cp などをマッピングするといい感じになる。 .ideavimrc は最後に載せておきます。
nexterror.gif

MethodsDown / MethodsUp

  • Ctrl + ↓ / ↑

メソッド単位でカーソル移動する

合わせて後述のStructureViewも使うと吉
nextmethods.gif

SplitVertically

  • 初期設定なし

エディタ画面を垂直分割する

水平分割するSplitHolizontallyもあるけどそっちはあまり使わない
split.gif

ProjectViewを開く / 閉じる

  • Cmd + 1

左のプロジェクトのファイルツリーが表示されている領域を開く / 閉じる

画面を広く使いたいときに使う
project.gif

StructureViewを開く / 閉じる

  • Cmd + 7

現在のファイルの構造を示した領域を開く / 閉じる

ClassやMethod単位でカーソル移動できる 概要眺めるのにも便利
structure.gif

VersionControlViewを開く / 閉じる

  • Cmd + 9

Gitなど、VCS使ってるとき変更されたファイル一覧を出してくれる

ゆとりなのでGit以外の表示がどうなるのかは知らないです
vcs.gif

ShowDiff

  • (DiffViewやVCSViewでファイル選択状態で)Cmd + D

変更されたファイルの差分を表示する

hank単位で変更をもとに戻したりもできる
vcs_diff.gif

Diffとその前後のみ表示

  • ShowDiffのWindowで特定ボタン押下

変更とその前後のみ表示する 地味だけど便利
vcs_diff_accordion.gif

Diff画面で左右の画面のスクロールを同期する

  • ShowDiffのWindowで特定ボタン押下

地味だけど便利
vcs_diff_sync.gif

git commit

  • Cmd + K

git commitするウィンドウを開く

commitのタイミングで前述の ReformatCodeOptimizeImport するか否かを選択できるほか、 commit-hooks が設定されている場合、そちらも項目に出てくる
vcs_commit.gif

git push

  • Cmd + Shift + K

remoteが設定されている場合pushできる
vcs_push.gif

conflictの解決

  • コンフリクトしているときDiffViewで特定の操作

コンフリクトを選択的に解決できる めちゃくちゃ便利 これなしの生活には戻れない 出番が無いのがホントは一番いい
conflict.gif

該当ファイルのcommit履歴をVersionControlViewに一覧表示する

  • 初期設定なし

タイトルどおり これも経緯追うのに便利

キーマッピングするといいです 自分は Cmd + Ctrl + H に設定してます
vcs_history.gif

Revert

  • (DiffViewでファイル選択状態で)Cmd + Option + Z

ファイル単位で変更もとに戻す Gitのrevertとは違うので注意
revert.gif

〜Viewの移動

  • ドラッグ&ドロップ

たとえばVersionControlViewは初期だと下ですが好みで右側に移動できます。
move.gif

選択行を上下に移動

  • Shift + Option + ↓ / ↑

地味に使う
moveline.gif

選択行を上下に移動(インデントやシンタックスを考慮)

  • Shift + Cmd + ↓ / ↑

地味に使う

インデントやシンタックスを考慮というのは、たとえばPythonでif文の中身なくなるような行移動すると pass 勝手に入れてくれたりする
moveline_syntax.gif

Rename

  • Shift + F6

ファイル同士の関連を考慮してリネームしてくれます。

オプション次第で全文検索してリネームしてくれたりしますが基本的に最小設定でIDE任せがベター

IDEの恩恵を大きく受ける機能でもありますが、多少挙動の確認はしといたほうが良い気がしてます
rename.gif

RecentFile

  • Cmd + E

最近開いたファイル一覧
recentfile.gif

RecentProject

  • 初期設定なし

最近開いたプロジェクト一覧
recentproj.gif

Scroll from source / Collapse all

  • ProjectViewで特定ボタン押下

Scroll from source: ProjectView上で現在開いているファイルにカーソル移動 地味に重宝します

Collapse all: 個人的な用途ですが、気持ちが行き詰まったとき視界をクリアにしたくて使います
scrollfrom.gif

まとめ

機能があることを知ってるのと知らないのとではかなり変わってくると思っています。

ショートカットは1週間に1つ覚えるぐらいのペースで徐々に生活に取り入れればいいと思います。

使いこなしている諸兄らはおすすめのキーマップ教えてください。

おまけ .ideavimrc

.ideavimrc ではIDEの機能(:action)を各モードにマッピングできます。

参考までに載せておきます。

noremap cc :action CommentByLineComment<CR>
vnoremap cc :action CommentByLineComment<CR>

nnoremap R :action RenameElement<CR>
nnoremap <C-CR> :action ShowIntentionActions<CR>

nnoremap cn :action GotoNextError<CR>
nnoremap cp :action GotoPreviousError<CR>

nnoremap <C-n> :action MethodDown<CR>
nnoremap <C-p> :action MethodUp<CR>

set clipboard+=unnamed
set surround
set hlsearch
set incsearch
set ignorecase
set smartcase

参考

基本的な部分については、昨年の PyCon JP 2018 の発表がまとまってて良いです。動画では僕も質問してたりします

.ideavim の設定はこちらをよく参照します

29
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
24