Macのzsh+Prezto環境を整える

# はじめに
最近Macを買い換えたので、色々と環境構築の手順をメモメモ
内容としては、先人の方々の手順を参考にしております。

# 前提
- 購入時点で、macOSCatalina(10.15.5)
- デフォルトシェルも最初からzsh
    - 既存のシェル設定などは一切なし -> つまり、設定の引継ぎなどの手順は一切なし
- Homebrewは導入済み
    - 手順はこちらを参考に「[Homebrew導入](https://qiita.com/Holoyu/items/a1de402bd65a7c04ebfb)」

macOSのアップグレードをしていないので、他の記事に記載があるようなbashからzshへの切替などの手順はありません。

# prezto設定
基本的に[prezto](https://github.com/sorin-ionescu/prezto)のInstallationの手順になってます。

## zsh起動
```terminal:ターミナル
~ % zsh
```
別記事ではセットアップ画面が出るみたいでしたが、出ませんでした。

## preztoのインストール(=リポジトリのクローン)
```terminal:ターミナル
~ % git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
```
上記のコマンドに関しては、preztoのgithubからコピーするようにしてください。

## zsh構成ファイル生成
```terminal:ターミナル
~ % setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```

上記のコマンドを実行後、ユーザディレクトリ配下のファイル構成が以下のようになっているハズ。

```terminal:ターミナル
~ % ls -al

lrwxr-xr-x   1 hoge  staff     42  7 11 22:48 .zlogin -> /Users/hoge/.zprezto/runcoms/zlogin
lrwxr-xr-x   1 hoge  staff     43  7 11 22:48 .zlogout -> /Users/hoge/.zprezto/runcoms/zlogout
drwxr-xr-x  13 hoge  staff    416  7 11 22:42 .zprezto
lrwxr-xr-x   1 hoge  staff     45  7 11 22:48 .zpreztorc -> /Users/hoge/.zprezto/runcoms/zpreztorc
lrwxr-xr-x   1 hoge  staff     44  7 11 22:48 .zprofile -> /Users/hoge/.zprezto/runcoms/zprofile
-rw-------   1 hoge  staff    517  7  7 08:36 .zsh_history
lrwxr-xr-x   1 hoge  staff     42  7 11 22:48 .zshenv -> /Users/hoge/.zprezto/runcoms/zshenv
lrwxr-xr-x   1 hoge  staff     41  7 11 22:48 .zshrc -> /Users/hoge/.zprezto/runcoms/zshrc
```

## zshをデフォルトシェルに設定
```terminal:ターミナル
~ % chsh -s /bin/zsh
```

## 再起動
最後にターミナルを再起動して完了

```terminal:ターミナル
Last login: Tue Jul  7 08:37:35 on ttys001
~ ❯❯❯ 
```
上記のような感じでターミナルが起動する。
なんかおしゃれーな感じに表示が変わってる。

# おしゃれなテーマに変更する
preztoには色々とおしゃれなテーマが準備されてる

## 基本的なコマンド紹介
```
// preztoで利用できるテーマ一覧のプレビューを表示
~% prompt -p

// 気に入ったテーマ1つをプレビュー
// parametersがない場合
~% prompt -p [name]

// parametersがある場合
~% prompt -p [name] [parameters]

// 気に入ったテーマを適用(一時的)
~% prompt [name] [parameters]
```
上記のコマンドだけだと、ターミナルを再起動するたびにテーマが初期化される。
なので、起動時のテーマの設定値を変更して、再起動後も自動的に好きなテーマで起動するように設定ファイルを更新。

viとかで`.zpreztorc`を開いて、以下の設定箇所を変更

```terminal:ターミナル
// viで設定ファイルを開く
~% vi .zpreztorc 
```

設定の変更箇所は以下の`zstyle ':prezto:module:prompt' theme 'sorin'`部分。
デフォルトが`sorin`となっている部分を変更すると、起動時のテーマを設定できる。

```terminal:.zpreztorc
#
# Prompt
#

# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'sorin'
```

変更する場合は、以下のように修正する。

```terminal:.zpreztorc
# parameterがない場合
zstyle ':prezto:module:prompt' theme '[name]'

# parameterがある場合(シングルクォーテーションが不要となるので注意)
zstyle ':prezto:module:prompt' theme [name] [parameters]
```
※ parameterを含むテーマ設定の方法に関しては、preztoのissues[How to include a theme with parameters ? #1250](https://github.com/sorin-ionescu/prezto/issues/1250)を参照

私の好み的に以下のテーマを設定しました。
parameter付きテーマの設定の記載方法を見つけるのは地味に苦労しました。

```terminal:.zpreztorc
zstyle ':prezto:module:prompt' theme bigfade red white grey white
```

# その他の設定変更
## デフォルトエディタの変更
色々と調べてると、デフォルトエディタがnanoとなっている記事を見つけたので、ついでに変更

```terminal:ターミナル
// viで設定ファイルを開く
~% vi .zprofile
```

`.zprofile`の以下の記載部分を変更

```terminal:.zpreztorc
#
# Editors
#

# export EDITOR='nano'
export EDITOR='vim' # vimに変更
# export VISUAL='nano'
export VISUAL='vim' # vimに変更
export PAGER='less'
```


# 最後に
ひとまず、最低限やっておきたいところまでMemo
今後使ってみて、気になる設定があれば、随時更新する予定


# 参考記事
以下の記事を参考にさせていただきました。ありがとうございました。
[Macにzshとpreztoのインストール＆アンインストール、諸々の設定 @s_s_satoc](https://qiita.com/s_s_satoc/items/e3c1b9b3545fd572dd1c)
[Macでbashからzshへお引越しする方法 @AirBeans5956](https://qiita.com/AirBeans5956/items/6a00443c6118d7d3f5f4)
[Zsh + Prezto で快適コマンド環境を構築する](https://dev.classmethod.jp/articles/zsh-prezto/)
[Zsh環境をPreztoで構築したらエディタがnanoになってたからvimにした @naru0504](https://qiita.com/naru0504/items/29d54d91e7823732ab9b)