【PhpStorm】ショートカット（Win・Mac）と設定方法

WindowsとMacの両方で使用しているとショートカットを忘れるのでチートシートを作成しました。
他にも便利なショートカットがあるので、随時追加します。
PhpStormは 2016.2.1 を使用しております。

# ショートカット一覧

※ショートカットキーが2つあるものは、or 区切りで記載しています。

|Keymap上の表示|動作|Windows|Mac|
|:--|:--|:--|:--|
||マウスで複数箇所選択（※矩形選択可）|Alt + クリック（※ドラッグしてまとめて選択可）|Alt + クリック（※ドラッグしてまとめて選択可）|
|Terminal|ターミナル表示||option + F12|
|Jump to Source|呼び出しているソース元（関数やクラスなど）を表示|F4|F4　or　command + ↓|
|Paste from History|コピー履歴からペースト|Ctrl + Shift + V|command + shift + V|
|Find...|ファイル内検索||command + F|
|Find in Path...|プロジェクト内検索||command + shift + F|
|Replace...|ファイル内置換||command + R|
|Replace in Path...|プロジェクト内置換||command + shift + R|
|Back|一つ前の操作位置へ戻る|Ctrl ＋ Alt ＋ ←|command ＋ [　or　command ＋ option ＋ ←|
|Forward|一つ先へ操作位置へ戻る|Ctrl ＋ Alt ＋ →|command ＋ ]　or　command ＋ option ＋ →|
|Selct Previous Tab|左のタブへ移動|Alt + ←|command + shift + [　or　control + ←|
|Select Next Tab|右のタブへ移動|Alt + →|command + shift + ]　or　control + →|
|Close|タブを閉じる|Ctrl + F4|command + W|
|Duplicate Line or Selection|行単位で下へ複製|Ctrl + D|command + D|
|Delete Line|行の削除|Ctrl + Y|command + delete|
|Cut|行を切り取り|Ctrl + X　or　Shift + Delete|command + X　or　shift + fn + delete|
|Move Line Up|行単位で上へ移動|Alt + Shift + ↑|shift + option + ↑|
|Move Line Down|行単位で下へ移動|Alt + Shift + ↓|shift + option + ↓|
|Move Statement Up|命令文単位で上へ移動|Ctrl + Shift + ↑|shift + command + ↑|
|Move Statement Down|命令文単位で下へ移動|Ctrl + Shift + ↓|shift + command + ↓|
|Move Caret to Next Word|単語の末尾へ移動||option + →|
|Move Caret to Previous Word|単語の先頭へ移動||option + ←|
|Move Caret to Line End|行の末尾へ移動||command + →|
|Move Caret to Line Start|行の先頭へ移動||command + ←|
|Extend Selection|単語を選択（連続押下で範囲拡大）|Ctrl + W|option + ↑|
|Select All Occurrences|同じ単語を全て選択|Ctrl + Alt + Shift + J|control + command + G|
|Add Selection for Next Occurrence|同じ単語を一つずつ選択|Alt + J|control + G|
|Unselect Occirremce|同じ単語を一つずつ選択解除|Alt + Shift + J|control + shift + G|
|Indent Selection|インデントを一つ上げる|Tab|tab|
|Unindent Line or Seletion|インデントを一つ下げる|Shift+ Tab|shift + tab|
|Comment with Line Comment|コメントアウト（行単位）のON・OFF|Ctrl + /|command + /|
|Comment with Block Commet|コメントアウト（ブロック単位）のON・OFF|Ctrl + Shift + /|command + shift + /|
|Hide All Tool Windows|ツールウインドウ（サイドのツリー表示）の表示・非表示|Ctrl + Shift + F12|command + shift + F12|
|Project|プロジェクトウィンドウ（サイドのツリー表示）へ移動||command + 1　（※escでエディタウインドウへ移動）|
|Synchronize|ファイルの同期||option + command + Y|
|New Folder...|新しいファイル・フォルダなどの作成||command + N|
||Emmet展開||tab※1|

※エディタ画面からターミナルへは <kbd>option + F12</kbd> で移動しますが、ターミナルからエディタ画面へ戻るショートカットが見当たりません。エディタ画面へ戻りたいときは、<kbd>command + 1</kbd> でプロジェクトウィンドウへ移動してから <kbd>esc</kbd> でエディタ画面へ戻っています。
※記載しているショートカットは一部ですので、他のショートカットを確認したいときは下記の方法で確認してください。
※1 PhpStorm上から新規ファイルを作成するときは HTML File を選択しないと Emmet 展開されないかも

# 設定画面の定義

基本的に各種設定は環境設定画面で行うことが多いです。

| |Windows|Mac
|:--|:--|:--|
|設定画面を選択して開く|`File > Setings`|`PhpStorm > Preferences`|
|設定画面をショートカットで開く|`Ctrl + Alt + S`|`command + ,`|

この操作で表示される画面を設定画面と呼びます。

# ショートカットの確認・設定

## 確認方法

設定画面の `Keymap` からショートカット一覧を確認できます。

`keymaps` は変更可能で `Eclipse` や `NetBeans` などに変更することが可能です。
私は `Atom` と `SublimeText` しか使ったことがなく、`keymaps` にそれらの選択肢がないので、`Default` にしています。

## 設定方法

#### 手順1

キーマップ一覧からショートカットを割り当てたい項目をダブルクリックすると「Edit Shortcuts」が表示されるので「Add Keyboard Shortcut」を選択します。

#### 手順2

「Keyboard Shortcut」が表示されるので入力欄を選択してショートカットのキーを入力します。
※ショートカットが既に割り当てられていると `Already assigned to` と表示されます。

PhpStormはデフォルトでショートカットが割り当てられていない機能があります。
下記の機能はデフォルトで割り当てられていないので、下記のように任意で設定しました。

|Keymap上の表示|動作|Windows|Mac|
|:--|:--|:--|:--|
|Select Line at Caret|行を選択|思案中|思案中|
|Split Vertically|画面を縦に分割|Alt + Shift + V|option + shift + V|
|Split Horizontally|画面を横に分割|Alt + Shift + H|option + shift + H|

# その他の設定

####目次

1. [画面の色（テーマ）の変更](http://qiita.com/4cres/items/5bcf0a916333521e9523#%E7%94%BB%E9%9D%A2%E3%81%AE%E8%89%B2%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E5%A4%89%E6%9B%B4)
1. [同期と保存の変更](http://qiita.com/4cres/items/5bcf0a916333521e9523#%E5%90%8C%E6%9C%9F%E3%81%A8%E4%BF%9D%E5%AD%98%E3%81%AE%E5%A4%89%E6%9B%B4)
1. [保存されていないファイルに*を表示する](http://qiita.com/4cres/items/5bcf0a916333521e9523#%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B)
1. [文字を折り返して表示](http://qiita.com/4cres/items/5bcf0a916333521e9523#%E6%96%87%E5%AD%97%E3%82%92%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA)
1. [FTP・FTPSを設定する](http://qiita.com/4cres/items/5bcf0a916333521e9523#ftpftps%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B)
1. [CakePHPのctpファイルを追加する](http://qiita.com/4cres/items/5bcf0a916333521e9523#cakephp%E3%81%AEctp%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)


##画面の色（テーマ）の変更

デフォルトでは背景が白のテーマなので、黒に変更します。
テーマの設定はUI部分とコード部分の2つあります。

UI部分の変更は設定画面の `Appearance & Behavior > Appearance` を選択し、UI Options の Theme を `Darcula` に変更
コード部分の変更は `View > Quick Switch Scheme... > 1.Color Sheme > 2.Darcula` を選択

## 同期と保存の変更

PhpStormはデフォルトで自動保存・同期がONになっています。
同期とは別のエディタなどで変更があった場合に変更内容を同期するかなどの設定です。

設定画面の `Appearance & Behavior > System Settings` で設定画面が表示されます。

下記の項目のチェックを全て外せば、自動で同期も保存もされなくなります。
但し、<ins>デフォルトでは保存されていないファイルにアスタリスクなどの目印が付きません。</ins>
後述する方法で設定してください。

|項目名|意味|
|:--|:--|
|Synchronize files on frame or editor tab activation|フレームまたはエディタのタブがアクティブのときに同期|
|Save files on frame deactivation|フレームから離れたときに保存|
|Save files automatically if application is idle for 15 sec.|アプリケーションが15秒アイドル状態のときに自動的にファイルを保存|
|Use "safe write"(save changes to a temporary file first)|安全な書き込みを使用するか|

## 保存されていないファイルに*を表示する

設定画面の `Editor > Editor Tabs` を選択し、`Mark modified tabs with asterisk` の項目にチェックを入れてください。

## 文字を折り返して表示

設定画面の `Editor > General` を選択し、`Soft Wraps` にある `Use soft wraps in editor` の項目にチェックを入れてください。

## FTP／FTPSを設定する

※レンサバ（ロリポップ）の`FTPS`を設定したきの手順です。

設定画面の `Build, Execution, Deployment > Deployment` を選択します。
`+`を選択して `Name` にサイト名（命名は任意）を入力し、`Type`を選択します。
`Type` に `FTP` とありますが、`FTP` は通信が暗号化されていないため、`FTPS`または`SFTP`で設定してください。
`Connection` タブの各項目を入力します。
`FTPS host`にはホスト名（サーバー名）を入力します。
`Root path`にはルートパス（フルパス）は `/` にします。
`User name` にはユーザー名（アカウント名）を入力してください。
`Password` にはパスワードを入力し、保存する場合は `Save password` をチェックしてください。
`Advanced options...` を選択し、`Passive mode`にチェックを入れ、OKを選択します。

※FTP接続にはパッシブモード（PASVモード）とアクティブモード（ACTIVEモード）の2つがあります。
　それぞれの違いは[ここ](http://wa3.i-3-i.info/diff60ftp.html)がわかりやすいと思います。
　詳しくしりたい方はググってください。

独自ドメインを使用している場合は、`Web server root URL`にURLを入力してください。
ここを入力するとコード入力画面の右上に出てくるブラウザアイコンを選択するだけで、Webページが表示されるようになります。

`Mappings` タブに移動して各項目を設定します。
`Local Path` はWebサイトのデータがあるディレクトリを選択してください。
複数サイトを運営しているなど、アップロード先がルートパス（フルパス）とは異なる場合、 `Deployment path on server` にディレクトリ名を入力してください。例えば、ルートパス（フルパス）は`/home/xxxx/www/` だけどWebサイトのアップロード先は`/home/xxxx/www/hoge/`の場合は、`Deployment path on server` に `hoge` と入力してください。
これで一通りの設定は完了です。

ファイルをアップロードしたいときは、ファイル選択中に
Windowsの場合 <kbd>Ctrl + Alt +Shift + X</kbd>、 Macの場合 <kbd>option + shift +command + X</kbd> で登録したサーバーが一覧で表示されるので該当サーバーを選択するとアップロードされます。

## CakePHPのctpファイルを追加する

設定画面の `Editor > File Types` を選択。
上の`Recognized File Types` のリストにある`PHP`を選択。
下の`Registerd Patterns`の＋を選択し、`*.ctp` と入力してOKを選択。