かっこいいMac設定が知りたいので自分の設定を晒す

# はじめに
最近Macbook AirをCTOで購入しました！！
ポイント還元率の高いヨドバシカメラで購入しています。

新しいMacに対して初期設定をしている中で、この手順を残しておこうという気持ちと、みんなどんな環境設定をしてるのかな？というのを知りたい気持ちとが出てきたので、とりあえず自分の手順を晒します。

これ見て設定を晒してくれる人がいたら、同じタグ `Macの環境設定を晒す` で寄稿してもらえると嬉しいです！

# Macのスペック

スペックは下記の通りです。

- Macbook Air スペースグレイ
- CPU 1.6 GHz Intel Core i5
- メモリ 16GB
- SSD 256GB
- USキーボード

こだわったのはメモリとキーボードです。

手元でコンテナを複数起動して開発することが多いので、メモリは16GB積んでいます。
それ以上立ち上げる必要がある時はクラウド上に環境作ってしまったりするので、ローカルは16GBで十分かなという感じです。

キーボードは、かっこいいからという理由でUSキーボードを選択することが多いです。
日本語が印字されていないスタイリッシュなところが気に入っています。


# Mac自体の設定
購入から８日ほど待ってようやく手元にMacが届いたので早速設定していきます。
まずは本体の最低限の設定から。

## キーボード設定
タイピングを慣れている状態で実施するために下記の設定を有効化していきます。

- Function Keyの有効化
- windows風
- ライブ変換OFF

システム環境変数のキーボードのところから変更していきます。
cmd+space でSpotlightを起動して、 「キーボード」と入力するだけで設定画面に移動することができます。


## Dockの設定
Dockはデフォルトでは固定表示で結構アイコンが大きいので、下記の変更を実施します。

- Dockのサイズを小さめに
- 選択されたアイコンの拡大を有効化
- Dock操作をしない時は非表示に（「Dockを自動的に表示/非表示」を有効化）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/0aaacfb7-0cf0-d67c-a213-c01418de355f.png)


# アプリのインストール
次は開発でよく使うアプリ系をざっとインストールしていきます。
App Storeにないアプリはブラウザから調べてインストールしていきます。
よく使われるアプリ系だと思うので、個別に紹介することはしません。気になるものあればググるかコメントください。

- Chrome
- iTterm2
- VSCode
- Evernote
- Slack
- docker for Mac
- clipy
- alfred
- postman
- kindle
- xmind

あとはIDE系とか、必要に応じて好きなものをインストールすればいいかと思いますが、僕は基本的にVSCode＋iTerm派なので基本的にこれでOKです。


# 開発モジュール系のインストール
ターミナルから、開発で利用するモジュール系をインストールしていきます。


- brew
  - git
  - zplug
        - iTerm上でzshを使ってターミナルをカスタマイズしているので、そのプラグインマネージャとして利用しています
  - npm / node / nodebrew など
        - https://qiita.com/PolarBear/items/62c0416492810b7ecf7c
- awscli
- Terraform
- Serverless Framework
    - https://qiita.com/noralife/items/e36621ddd0e5b8ff4447 

また、最新のMacでもデフォルトインストールされていたPythonは2.7だったため、3.x系にアップグレードします。

- Pythonデフォルトバージョン変更
    - https://qiita.com/ms-rock/items/72b8f1abc661c539bb09
    - これやってもglobalのpythonバージョンが変わらない場合、pathの向き先を変更してます。これはもっといいやり方がある気がするので知りたい。。   


# アプリの設定
## iterm
普段開発でVSCodeのターミナルやIDEのターミナルはほぼ使わず、iTerm一本でターミナル操作をやっているので、瞬時に起動でき、効率的に操作できる状態に設定していきます。
やることは主に下記の３点です

- hotkey
- ｚｓｈ設定
- zplugによる追加機能

最終形はこんな感じ

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/de3bf2c8-6db5-124b-7b6c-7dd52cfae61e.gif)


### hotkey
何の操作をしているときでも、ctrlキーのダブルタップでiTermが起動するように設定します。

- iTermの設定画面のKeysタブからHotkeyを選択
- Create a Dedicated hotkey Window... をクリック
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/7b2fd9db-4fd6-ddcb-c48a-85558115bf6b.png)

- hotkey設定画面でDouble-tap Keyにチェックをいれ、Controlを選択→OK
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/b53e7814-c746-f0ec-5d46-d93b9bc51cdf.png)

- iTermの設定画面でProfilesを選択し、Hotkey Windowを選んで好みの見た目に変更
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/501aca14-e6f3-9334-4c2f-7b5370e2faab.png)

これでiTermを再起動すると、ctrlダブルタップでiTermが開いてくれます。

### zsh設定
僕はプロンプト周りをカスタマイズしたzshを利用しています。
まずは下記のコマンドでzshを有効化

```bash
$ chsh -s /bin/zsh
```

`~/.zshrc` にzpulg系の設定を追記していきます。
プロンプトのデザイン変えたり、よく使うコマンドをaliasに入れたりしています。

```bash:~/.zshrc
# alias系の設定
alias ll="ls -lG"
alias la="ls -aG"
alias lla="ls -laG"
alias ltr="ls -ltrG"
alias gi="git init"
alias gs="git status"
alias ga="git add"
alias gcm="git commit -m"
alias gip="curl inet-ip.info"

# コマンド補完機能
autoload -U compinit
compinit

# VCS(Version Control)機能
autoload -Uz vcs_info
autoload -Uz colors # black red green yellow blue magenta cyan white
colors

# PROMPT変数内で変数参照
setopt prompt_subst

zstyle ':vcs_info:git:*' check-for-changes true
zstyle ':vcs_info:git:*' stagedstr "%F{green}!"
zstyle ':vcs_info:git:*' unstagedstr "%F{magenta}+"
zstyle ':vcs_info:*' formats "%F{cyan}%c%u(%b)%f"
zstyle ':vcs_info:*' actionformats '[%b|%a]'

# プロンプト表示直前に vcs_info 呼び出し
precmd () { vcs_info }

# プロンプト（左）
PROMPT='%{$fg[green]%}[%n@%m]%{$reset_color%}'
PROMPT=$PROMPT'${vcs_info_msg_0_} %{${fg[blue]}%}%}$%{${reset_color}%} '

# プロンプト（右）
RPROMPT='%{${fg[red]}%}[%~]%{${reset_color}%}'
```

これで、プロンプトに
`Username@Hostname` , `git branch/status` , `current dir`
を表示できるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/d5edb638-6f04-bef5-b0fa-50409357d128.png)

### zplugによる追加機能
ｚｓｈのプラグインはあんまり使いこなせてないんですが、下記はかなり重宝しています。

- cd拡張機能
- cd-gitroot
- シンタックスハイライト

それぞれターミナル起動時にロードされるよう、zshrcに追記します。

```bash:~/.zshrc
# add plugin
source /usr/local/opt/zplug/init.zsh
zplug "mollifier/cd-gitroot"
zplug "b4b4r07/enhancd", use:init.sh
zplug "zsh-users/zsh-history-substring-search", hook-build:"__zsh_version 4.3"
zplug "zsh-users/zsh-syntax-highlighting", defer:2
zplug "zsh-users/zsh-completions"
zplug "junegunn/fzf-bin", as:command, from:gh-r, rename-to:fzf

# Rename a command with the string captured with `use` tag
zplug "b4b4r07/httpstat", \
    as:command, \
    use:'(*).sh', \
    rename-to:'$1'

# Install plugins if there are plugins that have not been installed
if ! zplug check --verbose; then
    printf "Install? [y/N]: "
    if read -q; then
        echo; zplug install
    fi
fi

# Then, source plugins and add commands to $PATH
zplug load --verbose

```

これで最初にデモ貼り付けたように、cdコマンドでよく使うディレクトリに一発で移動できたり、git管理されているディレクトリのrootに一発で移動できたり、シンタックスハイライトが有効になったりしてとても便利です！

## VSCode
VSCodeで開発することが多いのですが、そんな変わった使い方はしていないと思います。
少なくともTerminalから `code` コマンドで呼び出せるようにしていることと、使用する言語に応じてpluginをいくつか入れている程度です。

Terminalから `code` コマンドで開けるのは便利なのでおすすめです。
上のcd拡張機能と合わせると、プロジェクトに一発で移動して `code ./` でソースディレクトリを開いてすぐに開発に着手することができます。


# Keyファイル系の移行
古いMacから新しいMacに、AWSのIAM User系のCredentialファイルとか、sshの秘密鍵を移行する必要があります。
複数の会社で副業しているので、鍵の数が半端じゃなくて、それをSlackとかオンラインストレージ経由で移動してしまうとInternetを経由する分無駄にリスクが高くなるので、今回はAirDropで移行しました。

P2PのBluetooth通信なので盗聴リスクがなく、安全でいいのかなと思います。
他にいい方法があったら知りたいです。


# Mac自体の物理環境
外で作業することも多いのですが、カフェで長時間開発とかしてると首が大変なことになるので、今回このスタンドを購入してみました。

[Majextand・人間工学に基づく世界最薄スタンド](https://www.amazon.co.jp/gp/product/B07GB57M3D/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)

これ、薄くて邪魔にならないしデザイン悪くないし安定性も高いのでお勧めします！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/d8236060-e57f-ea62-7249-81e17027e4cb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130140/ead5f279-b2fa-d665-6c48-a6c91f905ae3.png)

あとは画面を覗かれないようにフィルムをつけています。
[保護フィルム](https://www.amazon.co.jp/gp/product/B07Q83Q44B/ref=ppx_yo_dt_b_asin_title_o00_s01?ie=UTF8&psc=1)


------
以上です！
Macで開発されている方の何かの参考になれば幸いです。

また、冒頭にも書きましたが、みなさんの開発マシンも見てみたいので、こだわり設定とかあったら是非教えてくださいー！