最強の開発環境シリーズの最後です。
今現在のPhpStormキーマップについて考察と、使い方について列挙してみます。
前提として、カーソル移動はEmacsのキーバインド、そしてPhpStorm内でIdeaVimをインストールしてVimキーバインドをデフォルトとした状態からカスタマイズしています。
Vimのキーマップや細かいキーマップはキリがなかったのであげていません。ある程度主要の機能 かつ 頻繁に使っているものだけピックアップしています。また、デフォルトキーマップ、変更後キーマップ共にMac環境での記述をしています。
かなり変態的なキーマップなので全く参考にはならないとは思いますが、無理やりキーマップを真似てみたり、こんな機能があるんだと見て頂ければ幸いです。
アクション名 | 内容 | デフォルトキーマップ | 変更後のキーマップ |
---|---|---|---|
New | ファイルやディレクトリの新規作成 | Ctrl+N | Cmd+Shift+N |
Rename | ファイルをリネーム | Cmd+Shift+R | |
Quick Documentation | カーソル箇所に対応するドキュメントを表示 | Ctrl+J | F2 |
Select Word at Caret | カーソル下の単語を選択→範囲を広げる | Cmd+W | Option+Y |
Show Bookmarks | ブックマーク登録済箇所をポップアップで一覧表示 | Ctrl+F11 | Ctrl+R |
Toggle Bookmark With Mnemomic | ブックマークを任意文字を付けてトグル | Option+A | |
Find Action | 実行したいアクションを入力して実行 | Cmd+Shift+A | Ctrl+Q |
File Structure | ファイル内のメソッドやフィールドをポップアップで一覧表示 | Cmd+F12 | Ctrl+O |
Next Method | ファイル内の次のメソッド定義箇所にジャンプ | Ctrl+↓ | Option+N |
Previous Method | ファイル内の前のメソッド定義箇所にジャンプ | Ctrl+↑ | Option+P |
Next Change | ファイル内の次の変更箇所にジャンプ | Ctrl+Option+Shift+↓ | Ctrl+Option+N |
Previous Change | ファイル内の前の変更箇所にジャンプ | Ctrl+Option+Shift+↑ | Ctrl+Option+P |
Split Vertically | エディタを縦に分割 | Ctrl+L, V | |
Split Horizontal | エディタを横に分割 | Ctrl+L, H | |
Goto Next Splitter | 分割されている次のエディタに移動 | Ctrl+L, L | |
Goto Previous Splitter | 分割されている前のエディタに移動 | Ctrl+L, Shift+L | |
Select All | エディタ内の単語を全て選択 | Cmd+A | Ctrl+A |
Surround With | 選択された単語や行をなにかで括る | Cmd+Option+T | Ctrl+Option+S |
Generate | Getter/Setterなどを作成の呼び出しメニュー一覧 | Ctrl+N | Ctrl+1 |
Select In | 現在のファイルをProject ViewやFinderで開くメニュー一覧 | Ctrl+F1 | Ctrl+2 |
Synchronize | 現在のファイルを強制同期 | F5 | |
Extract Variable | カーソル下の呼び出しを変数に格納 | Cmd+Option+V | Option+Shift+L |
Decralation | 定義元にジャンプ | Cmd+B | Ctrl+Enter |
Show Intention Actions | カーソル下の文字列に対して様々なアクションを実行 | Ctrl+Enter | Option+Enter |
Reformat Code | ファイル内 or 選択された箇所のコードをフォーマット | Cmd+Option+L | Ctrl+Shift+L |
Goto File | ファイル名を指定してジャンプ。曖昧検索可 | Cmd+Shift+N | Ctrl+Y |
Goto Class | クラス名を指定してジャンプ。曖昧検索可 | Cmd+N | Ctrl+T |
Search Everywhere | FindAction+Goto(Class/File/Symbol)+Recent files | Shift,Shift | Ctrl+I |
Recent Files | 直近で編集したファイルを一覧で表示 | Cmd+E | Ctrl+E |
Project | プロジェクトビューを開く/閉じる | Cmd+1 | Option+1 |
Find | 検索タブを開く/閉じる | Cmd+3 | Option+3 |
Run | 実行結果タブを開く/閉じる | Cmd+4 | Option+4 |
Version Control | バージョンコントロールタブを開く/閉じる | Option+6 | |
Changes | VCS変更点タブを開く/閉じる | Cmd+9 | Option+9 |
Debug | デバッグタブを開く/閉じる | Option+Z | |
Update Project | Git Pull | Cmd+T | Option+U |
Commit Changes | Git Commit | Option+C | |
Git Push | Git Push | Cmd + P | |
Find Usage | カーソル下の変数やメソッドを呼び出している箇所を検索 | Ctrl+F7 | Ctrl+G |
Find in Path | ファイルをプロジェクト内から検索 | Ctrl+Shift+F | Ctrl+Option+G |
Basic Completion | コード補完 | Ctrl+Space | Cmd + Space |
Cyclic Expand Word | ファイル内文字列からコード補完 | Option+/ | Option+/ |
Insert Live Template | Live Templateを明示的にInsert | Cmd+J | Ctrl+L, T |
Smart Step Into | デバッグ時にメソッドに入りつつステップ実行 | F4 | |
Step Over | デバッグ時にメソッド内に入らずにステップ実行 | F6 | |
Step Over | デバッグ時に現在のメソッドの外まで出る | F7 | |
Resume Program | デバッグ中のプログラムを再実行 | F8 |
エディタ内全般
New
ディレクトリや拡張子付きのファイルを生成してくれるダイアログメニューです。
結構便利な機能ですが、そこまで頻繁に押すわけではないのでちょっと押しにくい位置にしています。
Rename
リファクタリングリネームです。requireしている箇所も一緒に置換してくれたりします。
また、Rename画面で↑↓を押すとsnake_caseをCamelCaseにしたようなリネーム候補を出してくれたりします。こういう細かい心遣いがいいですね。
Quick Documentation
カーソル下の変数や呼び出しメソッドの定義元やPhpDocを表示してくれます。そこまで頻繁に押すわけではないですが、DashをF1に割り当てているので、ドキュメント繋がりで隣のF2キーを割り当ててます。
Select Word at Caret
こんな感じ選択範囲をで広げたり狭めたり出来ます。
普段は文字列選択はVimのキーバインド[vi(]とかを多用しますが、とか、HTMLタグ内の選択はVimプラグインで再現出来ていないので、比較的こっちを使うことも多し。なので割と押しやすいキーバインドにしてます。
Show Bookmarks
付けておいたブックマークを一覧で表示します。ジャンプせずともブックマーク前後のコードが見れるので超便利。
これもかなり使うので押しやすい上位枠のCtrl+Rを割り当ててます。
Toggle Bookmark With Mnemomic
上述のBookmarkをトグルする側の機能です。
数字だけじゃなくてアルファベットにも割り当てられます。
Find Action
PhpStormを代表する機能、Find Action。
やりたい動作のショートカットが分からなくても、やりたいことを入力すればアクションをサジェストしてくれるという超便利機能。
設定(Preference)の項目からも検索してくれるので、設定を検索したいときにも役立ちます。
また、自分の場合はRevertやReplace in Pathなど「破壊的な機能」はのキー誤操作の事故を防ぐためにキーマップに割り当てないようにしています。
なので、これらはFind Action経由で呼び出すということもあり、Find Action自体は上位枠のCtrl+Qを割り当てています。
File Structure
ファイル内の変数やメソッドを一覧で表示します。このウィンドウ内で絞り込んでジャンプも出来ます。便利。
ビューとして開きっぱなしにしておくことも出来ますが、自分はサッと開いてサッと閉じたい派なので、ウィンドウ呼び出しにしています。
ファイル内でメソッド名を入力してジャンプするということもありかなり多用するので、これもかなり上位枠のCtrl+Oを割り当てています。
Next Method
ファイルに定義されている、カーソルの位置の1つ次のメソッドに飛べます。
あんま使わないけど、割り当てとくと地味に役立つシリーズ。
Previous Method
ファイルに定義されている、カーソルの位置の1つ前のメソッドに飛べます。
同上。
Next Change
ファイルに定義されている、カーソルの位置の1つ次の「変更位置」に飛べます。
上述の2つよりは若干使う頻度高め。
Previous Change
ファイルに定義されている、カーソルの位置の1つ前の「変更位置」に飛べます。
Split Vertically
現在のファイルを「縦分割」してエディタを開きます。
分割前と分割後のエディタに同じファイルが開かれてしまうのが玉に瑕。
自分は割と分割して開発することが多いので、2Key Strokeの中でも割と押しやすい位置のCtrl+L, Vに割り当ててます。
Ctrl+Lは分割系で統一。VはVerticalのV。
Split Horizontal
現在のファイルを「横分割」してエディタを開きます。
Ctrl+L, H。HはHorizontalのH
Goto Next Splitter
現在のカーソル位置の次のエディタにカーソルを移動します。複数分割しているときは連打することになりがちなので、割と押しやすいCtrl+L,L。
Goto Previous Splitter
現在のカーソル位置の前のエディタにカーソルを移動します。
割と戻るよりも、Nextを連打することが多いのであまり押さないかも。
Select All
ファイル内の文字を全選択。
Surround With
現在のカーソル下の文字列に対してif文や{ }、HTMLタグなど「なにかで括る」アクションを実行してくれます。
地味に便利なんだけど、割と忘れがちなショートカット。HTMLファイル内で使うことが多いです。
Generate
メソッドのオーバーライドだったりコンストラクタ生成、Getter / Setterとかのメニューを表示。
PHPなので使う機会はかなり少なめ。
Select In
現在のファイルをProject View(左メニュー)で開いたり、Finder内で開いたり出来ます。Project Viewで開いた際にはそのファイルの箇所にカーソルが合わさるのでかなり便利。これはかなり頻繁に使うので上位のCtrl+2に割り当て。
Synchronize
ファイルの同期。Auto Uploadを設定しているときなど、即座にファイルアップロードを実施したりするのに使用します。
Reload的な意味合いが強かったので、F5を割り当てています。ブラウザ的な意味で。
Extract Variable
リファクタリング機能です。カーソル下の文字列を変数に入れたりしてくれます。Extractする範囲を選べたりするのもいい感じ。
Decralation
定義元にメソッドや変数の定義元にジャンプする機能です。
超頻繁に使います。上位枠のCtrl+Enterに割り当ててます。
Show Intention Actions
カーソル下のコードに対して、「文字列シングルクォートとダブルクォートの入れ替え」とか「PHPのarray()と[]の入れ替え」とか「文字列分割」とか様々なアクションを提供してくれます。
Reformat Code
ファイル全体、もしくは選択しているコードのフォーマットを再実行します。便利ですが利用頻度はそこまで高くないので中位枠のCtrl+Shift+Lを割り当ててます。
ファイル間移動
ジャンプ機能の使い分けについてはこちらに書きましたのでご参考までに。
ジャンプを使い分ける
Goto File
ファイル名を指定してジャンプ出来ます。超便利機能。
利用頻度はかなり高いので上位枠のCtrl+Yを割り当てています。
Goto Class
上記のGotoFileに対して、こちらはクラス指定でのジャンプ機能。こちらも超便利。
こちらも利用頻度がかなり高いので上位枠のCtrl+Tを割り当てています。
Search Everywhere
こちらはPhpStorm7.1から実装された万能検索機能です。
上記のGotoFile, GotoClassに加えてGoto Symbol、Recent Files、 Find Actionまで包括された機能です。
が、詰め込みすぎているが故に実行が体感的に結構遅いのが難点。
便利ではあるけど…。エディタを使い込んでいる人はこの遅さはかなりフラストレーションになっていると思います。
上位のCtrl+Iを割り当てていますが、中位枠落ち予定の機能。今後の高速化に期待してます。
Recent Files
直近で開いていたファイルを一覧で表示してくれます。これでファイル間をビュンビュン飛び回れます。地味に他のビューにも飛べたりします。(分割左)
超頻繁に使うのでかなり押しやすいCtrl+Eを割り当てています。Ctrl+Eのeは[rEcent]のeのつもり(後付け)
ビュー
Project
プロジェクトビュー。エディタを広く使いたいときには非表示にするので、かなり頻繁に押してます。
Find
検索ビュー。[Find in Path…]とかを実行した際に自動的にこのビューがフォーカスされて開きます。これも開いたり閉じたりするので結構頻繁に押してます。
Run
あんま使わないけど閉じるために割り当ててます。
Version Control
バージョンコントロールビュー。Pullしてきたファイルの差分とか見れます。
また、PhpStorm上で操作したGitの履歴とかがここにConsoleとして出てくるので、内部的にどういう動きをしたのかとか把握するのにも便利。
Changes
ローカルのファイル差分(git status相当)の一覧とか、git logをGUIベースで表示してくれます。これもかなり使う。
VCS
Update Project
Git Pull。チーム開発していたら頻繁に使うので押しやすいOption+Uに割り当ててます。UはUpdateのU。
Commit Changes
Git Commit(&Push)。ここで差分が見れるよ。これも頻繁に使うので押しやすいOption+Cに割り当ててます。CはCommitのC。
Git Push
名前のまんま、GitPush。Ctrl+Pはカーソル移動(↑に移動)に割り当てられてるので、仕方なくCmd+Pに割り当て。PはPushのP。
検索
検索の使い分けについてはこちらに書きましたのでご参考までに。
Searchを使い分ける
Find Usage
カーソル下の変数やメソッドを定義したり使用している箇所を一覧で表示。
精度が高くないのであまり使わないけれど、検索系は速度重視で「すぐに結果を表示したい」ので、ショートカットであたふたしないように押しやすい位置に割り当ててます。
Find in Path
条件や正規表現を指定してのプロジェクトからのファイル検索。拡張子指定とか細かなディレクトリ指定とかがしやすいので、かなり頻繁に使います。
コード補完
Basic Completion
名前の通りベーシックなコード補完。コード補完のオートポップアップを超高速にしてあるので、あまり押さないので割と押しにくい位置に割り当ててます。
Cyclic Expand Word
ファイル内の文字列を対象に、文字列を補完してくれる機能。デフォルトのキーバインドから変えてない数少ない機能。配列内の文字列とか補完するときに便利です。
Insert Live Template
Live Templateを明示的に実行。基本的にはAuto Completeから実行することが多いのであまり呼び出すことはないですが、呼出名を忘れたときとかに使うことあり。
Live Templateについてはこちらに書きました。
LiveEditを使ってみよう
デバッグ
こちらに詳しく書きましたので参考にしていただければ。
PhpStormのデバッグを使いこなす