前置き
JetBrains社の開発するPyCharm(IntelliJ Idea)等の製品は強力な補完を行うことができる高機能なIDEです。
一方で高機能ゆえに、「使いこなせていないなぁ」と感じる方も多いのではないでしょうか。
本記事では、自分のよく使う機能をgif付きでまとめます。
また、最近はJetBrains製品の公式マニュアル日本語βが公開されています。合わせてこちらも押さえておくと良いと思います。
最新は本家公式を追うとよいです
環境
- PyCharm 2018.3.4 (ProfessionalEdition)
筆者環境の都合によりMacのみショートカット記載します
Tips
以下よく使う順で書いていきます。
機能名については検索性を考え、極力公式の英語に合わせることとします。
また、 「この機能クールだぜ」「この機能これにキーマッピングすると便利」 など情報あれば教えてください。
とくに自分が全然知らないのはHTTP ClientやFavoriteのあたりです。StructureViewも詳しいことは知らないです。
Search Everywhere
- Shiftを2回押す
ファイル名とかディレクトリ名とかClass名とかPJのテスト実行設定等を対象に検索する
基本的にファイル開く動作はこれ
ShowIntentionActions
Alt + Enter
赤線、黄色線出てるところで使うとそのコードに対して行える操作一覧が出る
どう考えても Alt + Enter
は押しづらいので Ctrl + Enter
などに変えるのがおすすめ
加えて Down / Up
を Ctrl + N / P
に設定しておくとキーボードから手を離さずに修正できる
Find
Cmd + F
FindinPath
Cmd + Shift + F
ReformatCode
Cmd + Option + L
PJ固有設定にそってコード整形する
拡張子によってやることは自動で変わる
OptimizeImport
Cmd + Option + O
import文などをいい感じに並び替えてくれる
AutoIndentLine
Cmd + Option + I
PJ固有設定にそってコード整形する
拡張子によってやることは自動で(ry
GotoNextError / GotoPreviousError
- 初期設定なし
赤線、なければ黄色線にカーソル移動する
ShowIntentionActionsと組み合わせると爆速で修正できるのに加えて、エラーがないことの確認としても使う
IdeaVim
使ってるのであればノーマルモードの cn/cp
などをマッピングするといい感じになる。 .ideavimrc
は最後に載せておきます。
MethodsDown / MethodsUp
Ctrl + ↓ / ↑
メソッド単位でカーソル移動する
SplitVertically
- 初期設定なし
エディタ画面を垂直分割する
水平分割するSplitHolizontallyもあるけどそっちはあまり使わない
ProjectViewを開く / 閉じる
Cmd + 1
左のプロジェクトのファイルツリーが表示されている領域を開く / 閉じる
StructureViewを開く / 閉じる
Cmd + 7
現在のファイルの構造を示した領域を開く / 閉じる
ClassやMethod単位でカーソル移動できる 概要眺めるのにも便利
VersionControlViewを開く / 閉じる
Cmd + 9
Gitなど、VCS使ってるとき変更されたファイル一覧を出してくれる
ShowDiff
(DiffViewやVCSViewでファイル選択状態で)Cmd + D
変更されたファイルの差分を表示する
Diffとその前後のみ表示
- ShowDiffのWindowで特定ボタン押下
Diff画面で左右の画面のスクロールを同期する
- ShowDiffのWindowで特定ボタン押下
git commit
Cmd + K
git commitするウィンドウを開く
commitのタイミングで前述の ReformatCode
や OptimizeImport
するか否かを選択できるほか、 commit-hooks
が設定されている場合、そちらも項目に出てくる
git push
Cmd + Shift + K
conflictの解決
- コンフリクトしているときDiffViewで特定の操作
コンフリクトを選択的に解決できる めちゃくちゃ便利 これなしの生活には戻れない 出番が無いのがホントは一番いい
該当ファイルのcommit履歴をVersionControlViewに一覧表示する
- 初期設定なし
タイトルどおり これも経緯追うのに便利
キーマッピングするといいです 自分は Cmd + Ctrl + H
に設定してます
Revert
(DiffViewでファイル選択状態で)Cmd + Option + Z
ファイル単位で変更もとに戻す Gitのrevertとは違うので注意
〜Viewの移動
- ドラッグ&ドロップ
たとえばVersionControlViewは初期だと下ですが好みで右側に移動できます。
選択行を上下に移動
Shift + Option + ↓ / ↑
選択行を上下に移動(インデントやシンタックスを考慮)
Shift + Cmd + ↓ / ↑
地味に使う
インデントやシンタックスを考慮というのは、たとえばPythonでif文の中身なくなるような行移動すると pass
勝手に入れてくれたりする
Rename
Shift + F6
ファイル同士の関連を考慮してリネームしてくれます。
オプション次第で全文検索してリネームしてくれたりしますが基本的に最小設定でIDE任せがベター
IDEの恩恵を大きく受ける機能でもありますが、多少挙動の確認はしといたほうが良い気がしてます
RecentFile
Cmd + E
RecentProject
- 初期設定なし
Scroll from source / Collapse all
- ProjectViewで特定ボタン押下
Scroll from source: ProjectView上で現在開いているファイルにカーソル移動 地味に重宝します
Collapse all: 個人的な用途ですが、気持ちが行き詰まったとき視界をクリアにしたくて使います
まとめ
機能があることを知ってるのと知らないのとではかなり変わってくると思っています。
ショートカットは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
の設定はこちらをよく参照します