81
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PhpStormAdvent Calendar 2013

Day 25

最強の開発環境を目指して 〜キーマップ編〜

Posted at

最強の開発環境シリーズの最後です。
今現在の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

autoload_namespaces_php_-screeme-___Dropbox_100_Programming_php_screeme.png

ディレクトリや拡張子付きのファイルを生成してくれるダイアログメニューです。
結構便利な機能ですが、そこまで頻繁に押すわけではないのでちょっと押しにくい位置にしています。

Rename

Rename_と_autoload_namespaces_php_-screeme-___Dropbox_100_Programming_php_screeme.png

リファクタリングリネームです。requireしている箇所も一緒に置換してくれたりします。
また、Rename画面で↑↓を押すとsnake_caseをCamelCaseにしたようなリネーム候補を出してくれたりします。こういう細かい心遣いがいいですね。

Quick Documentation

autoload_namespaces_php_-screeme-___Dropbox_100_Programming_php_screeme.png

カーソル下の変数や呼び出しメソッドの定義元やPhpDocを表示してくれます。そこまで頻繁に押すわけではないですが、DashをF1に割り当てているので、ドキュメント繋がりで隣のF2キーを割り当ててます。

Select Word at Caret

5212b38149e2b0069a7381e08468d3bb.gif

こんな感じ選択範囲をで広げたり狭めたり出来ます。
普段は文字列選択はVimのキーバインド[vi(]とかを多用しますが、とか、HTMLタグ内の選択はVimプラグインで再現出来ていないので、比較的こっちを使うことも多し。なので割と押しやすいキーバインドにしてます。

Show Bookmarks

TitlesController_php_-screeme-___Dropbox_100_Programming_php_screeme.png

付けておいたブックマークを一覧で表示します。ジャンプせずともブックマーク前後のコードが見れるので超便利。

これもかなり使うので押しやすい上位枠のCtrl+Rを割り当ててます。

Toggle Bookmark With Mnemomic

autoload_namespaces_php_-screeme-___Dropbox_100_Programming_php_screeme.png

上述のBookmarkをトグルする側の機能です。
数字だけじゃなくてアルファベットにも割り当てられます。

Find Action

autoload_namespaces_php_-screeme-___Dropbox_100_Programming_php_screeme.png

PhpStormを代表する機能、Find Action。
やりたい動作のショートカットが分からなくても、やりたいことを入力すればアクションをサジェストしてくれるという超便利機能。

設定(Preference)の項目からも検索してくれるので、設定を検索したいときにも役立ちます。
また、自分の場合はRevertやReplace in Pathなど「破壊的な機能」はのキー誤操作の事故を防ぐためにキーマップに割り当てないようにしています。
なので、これらはFind Action経由で呼び出すということもあり、Find Action自体は上位枠のCtrl+Qを割り当てています。

File Structure

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

ファイル内の変数やメソッドを一覧で表示します。このウィンドウ内で絞り込んでジャンプも出来ます。便利。
ビューとして開きっぱなしにしておくことも出来ますが、自分はサッと開いてサッと閉じたい派なので、ウィンドウ呼び出しにしています。

ファイル内でメソッド名を入力してジャンプするということもありかなり多用するので、これもかなり上位枠の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

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

現在のカーソル下の文字列に対してif文や{ }、HTMLタグなど「なにかで括る」アクションを実行してくれます。
地味に便利なんだけど、割と忘れがちなショートカット。HTMLファイル内で使うことが多いです。

Generate

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

メソッドのオーバーライドだったりコンストラクタ生成、Getter / Setterとかのメニューを表示。
PHPなので使う機会はかなり少なめ。

Select In

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

現在のファイルをProject View(左メニュー)で開いたり、Finder内で開いたり出来ます。Project Viewで開いた際にはそのファイルの箇所にカーソルが合わさるのでかなり便利。これはかなり頻繁に使うので上位のCtrl+2に割り当て。

Synchronize

ファイルの同期。Auto Uploadを設定しているときなど、即座にファイルアップロードを実施したりするのに使用します。
Reload的な意味合いが強かったので、F5を割り当てています。ブラウザ的な意味で。

Extract Variable

e8aecb27ed451b55517fe752b97e761e.gif

リファクタリング機能です。カーソル下の文字列を変数に入れたりしてくれます。Extractする範囲を選べたりするのもいい感じ。

Decralation

7f3fb342fb25840eab39c562d2a6e615.gif

定義元にメソッドや変数の定義元にジャンプする機能です。
超頻繁に使います。上位枠のCtrl+Enterに割り当ててます。

Show Intention Actions

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

カーソル下のコードに対して、「文字列シングルクォートとダブルクォートの入れ替え」とか「PHPのarray()と[]の入れ替え」とか「文字列分割」とか様々なアクションを提供してくれます。

Reformat Code

ファイル全体、もしくは選択しているコードのフォーマットを再実行します。便利ですが利用頻度はそこまで高くないので中位枠のCtrl+Shift+Lを割り当ててます。

ファイル間移動

ジャンプ機能の使い分けについてはこちらに書きましたのでご参考までに。
ジャンプを使い分ける

Goto File

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

ファイル名を指定してジャンプ出来ます。超便利機能。
利用頻度はかなり高いので上位枠のCtrl+Yを割り当てています。

Goto Class

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

上記のGotoFileに対して、こちらはクラス指定でのジャンプ機能。こちらも超便利。
こちらも利用頻度がかなり高いので上位枠のCtrl+Tを割り当てています。

Search Everywhere

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

こちらはPhpStorm7.1から実装された万能検索機能です。
上記のGotoFile, GotoClassに加えてGoto Symbol、Recent Files、 Find Actionまで包括された機能です。

が、詰め込みすぎているが故に実行が体感的に結構遅いのが難点。
便利ではあるけど…。エディタを使い込んでいる人はこの遅さはかなりフラストレーションになっていると思います。

上位のCtrl+Iを割り当てていますが、中位枠落ち予定の機能。今後の高速化に期待してます。

Recent Files

autoload_namespaces_php_-screeme-___Dropbox_100_Programming_php_screeme.png
直近で開いていたファイルを一覧で表示してくれます。これでファイル間をビュンビュン飛び回れます。地味に他のビューにも飛べたりします。(分割左)

超頻繁に使うのでかなり押しやすいCtrl+Eを割り当てています。Ctrl+Eのeは[rEcent]のeのつもり(後付け)

ビュー

Project

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

プロジェクトビュー。エディタを広く使いたいときには非表示にするので、かなり頻繁に押してます。

Find

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

検索ビュー。[Find in Path…]とかを実行した際に自動的にこのビューがフォーカスされて開きます。これも開いたり閉じたりするので結構頻繁に押してます。

Run

あんま使わないけど閉じるために割り当ててます。

Version Control

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

バージョンコントロールビュー。Pullしてきたファイルの差分とか見れます。
また、PhpStorm上で操作したGitの履歴とかがここにConsoleとして出てくるので、内部的にどういう動きをしたのかとか把握するのにも便利。

Changes

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

ローカルのファイル差分(git status相当)の一覧とか、git logをGUIベースで表示してくれます。これもかなり使う。

VCS

Update Project

Update_Project_と_KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

Git Pull。チーム開発していたら頻繁に使うので押しやすいOption+Uに割り当ててます。UはUpdateのU。

Commit Changes

Commit_Changes_と_KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

Git Commit(&Push)。ここで差分が見れるよ。これも頻繁に使うので押しやすいOption+Cに割り当ててます。CはCommitのC。

Git Push

Git_Push_と_KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

名前のまんま、GitPush。Ctrl+Pはカーソル移動(↑に移動)に割り当てられてるので、仕方なくCmd+Pに割り当て。PはPushのP。

検索

検索の使い分けについてはこちらに書きましたのでご参考までに。
Searchを使い分ける

Find Usage

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

カーソル下の変数やメソッドを定義したり使用している箇所を一覧で表示。
精度が高くないのであまり使わないけれど、検索系は速度重視で「すぐに結果を表示したい」ので、ショートカットであたふたしないように押しやすい位置に割り当ててます。

Find in Path

Find_in_Path_と_KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

条件や正規表現を指定してのプロジェクトからのファイル検索。拡張子指定とか細かなディレクトリ指定とかがしやすいので、かなり頻繁に使います。

コード補完

Basic Completion

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

名前の通りベーシックなコード補完。コード補完のオートポップアップを超高速にしてあるので、あまり押さないので割と押しにくい位置に割り当ててます。

Cyclic Expand Word

c67fd9260a00daa034fffe7e4fc4cf43.gif

ファイル内の文字列を対象に、文字列を補完してくれる機能。デフォルトのキーバインドから変えてない数少ない機能。配列内の文字列とか補完するときに便利です。

Insert Live Template

KeywordFetchShell_php_-screeme-___Dropbox_100_Programming_php_screeme.png

Live Templateを明示的に実行。基本的にはAuto Completeから実行することが多いのであまり呼び出すことはないですが、呼出名を忘れたときとかに使うことあり。

Live Templateについてはこちらに書きました。
LiveEditを使ってみよう

デバッグ

こちらに詳しく書きましたので参考にしていただければ。
PhpStormのデバッグを使いこなす

81
75
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
81
75

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?