Macでよく使いそうなショートカット集

# はじめに
- iOSアプリの開発をするために、WindowsからMacへ乗り換えるという人は多いと思います（業務命令だから仕方なく、というケースも含めて）
- MacはWindows PCとはいろいろと操作感が異なりますが、ここではその中からショートカットについてまとめます
- ショートカットはたくさんありますが、最初に覚えると良さそうなのだけをピックアップします

# 基礎知識
## 大雑把な覚え方
- Windowsの「controlキー」 -> Macの「commandキー」だと思えばOKです（そうじゃないケースも多いですが）

## 修飾キーを表す記号
- Macのキートップやショートカットには、Windowsユーザには意味不明の記号が書かれています
    - 2017モデルからは、キートップに記号だけでなく名前も書かれるようになりました
- まず、その記号の意味を確認しましょう

| 記号 | 名前 | 備考 |
|:-:|:-:|:--|
| ⌘ | `command` |キートップに名前も記号も書いてあるから大丈夫だね |
| ⌥ | `option` |optionは「選択」という意味。左から進んでくると考えると、電車のポイント切り替えみたいに行き先のオプションを選択できそうな記号だね。キートップには記号が書いてないぞ（2017モデル以降には記載あり） |
| ⌃ | `control` |キートップには記号が書いてないぞ（2017モデル以降には記載あり） |
| ⇧ | `shift` |上に向かって伸びてるってことは、大きくなる（大文字になる）ってことだね。キートップには記号が書いてないぞ |


# 真っ先に覚えておくと良いショートカット
- Spotlight検索は、非常に高速にアプリやファイル（ファイル名、ファイルの内容）などさまざまなものをキーワード検索できます
    - 大抵のもののインデックスが作成済みなので、とても早い
- これを使うと、アプリの起動などもキーボードから行えるのでとても楽です

| 機能 | ショートカット | 備考 |
|:--|:-:|:--|
| Spotlight検索 | `command + space` | 設定により、`control + space`が割り振られている場合もあり |

# 多くのアプリで共通するショートカット
## 一般
| 機能 | ショートカット | 備考 |
|:--|:-:|:--|
| 保存 | `command + S` |Simulatorでは、スクリーンショットを撮って保存する |
| コピー | `command + C` ||
| カット | `command + X` ||
| 全選択 | `command + A` ||
| 新規作成 | `command + N` |Finderなら新しいウィンドウを開く、Xcodeなら新しいファイルを作成するなど |
| 開く | `command + O` |開く対象を選択するダイアログが表示される |
| 選択したものを開く | `command + ↓` |ファイルならアプリで開く、フォルダなら1階層下がるなど |
| ひとつ上の階層へ移動 | `command + ↑` | 上のフォルダへ移動する場合に便利 |
| 閉じる | `command + W` |アクティブなウィンドウを閉じる（全ウィンドウを閉じても、アプリが終了するとは限らない） |
| 終了 | `command + Q` |アプリを終了する|
| 設定 | `command + ,` ||

## エディタ系（TerminalなどでもOK）
- Emacsなどに近い動作
- 文字を入力するほとんどのアプリで利用可能（Microsoft Officeでは使えない）

| 機能 | ショートカット | 備考 |
|:--|:-:|:--|
| 上の行へ | `control + P` |Previous |
| 下の行へ | `control + N` |Next |
| 前の文字へ | `control + B` |Back |
| 次の文字へ | `control + F` |Forward |
| 行の先頭へ | `control + A` |? |
| 行の末尾へ | `control + E` |End |
| カーソルより右をすべて削除 | `control + K` ||
| カーソル左の1文字を削除 | `control + D` または `delete` |
| カーソル右の1文字を削除 | `control + H` または `fn + delete` |delete単独では、Windowsのbackspaceの動作（カーソル左の1文字を削除）となるので紛らわしい |
| カーソル位置で改行 | `control + O` |

## エディタ系（応用編）
- カーソル移動のショートカットにshiftを組み合わせると、「選択」

| 機能 | ショートカット | 備考 |
|:--|:-:|:--|
| カーソル位置から上の行を選択 | `shift + control + P` |Previous |
| カーソル位置から下の行を選択 | `shift + control + N` |Next |
| カーソル位置から前の文字を選択 | `shift +  control + B` |Back |
| カーソル位置から次の文字を選択 | `shift +  control + F` |Forward |

- カーソル移動のショートカットにoptionを組み合わせると、「単語」

| 機能 | ショートカット | 備考 |
|:--|:-:|:--|
| 前の単語へ |`option +  control + B` |Back |
| 次の単語へ |`option +  control + F` |Forward |

# Xcode
| 機能 | ショートカット | 備考 |
|:--|:-:|:--|
| ビルド | `command + B` |Build |
| クリーン | `command + shift + K` ||
| 実行 | `command + R` |Run |
| 停止 | `command + .` ||
| コメント切り替え | `command + /` | カーソル行または選択した複数行が対象 |
| Quick Helpコメント作成 | `command + option + /` | メソッドなどのヘッダコメント |

# Simulator
| 機能 | ショートカット | 備考 |
|:--|:-:|:--|
| HOMEボタン | `command + shift + H` ||
| マルチタスク画面 | `command + shift + H`のあと、続けて`H` ||
| 右回転 | `command + →` ||
| 左回転 | `command + ←` ||

# まとめ
- 同じ内容は、Gistにも置きました
    - [macshortcuts_ja.md](https://gist.github.com/aokiplayer/ca0f11a0e1ef516f05e6c7cf6a3ecd7e)
- ここに挙げたものを使いこなすだけでも、かなりの効率アップが見込めます
- 徐々に、使えるものを増やしていきましょう

# 参考
- [Mac のキーボードショートカット - Apple サポート](https://support.apple.com/ja-jp/HT201236)