Mac購入後の動き

## はじめに
Qiita初投稿になります！

エンジニア7年目にして、Macを購入したのでセットアップがてらメモを残します。

## インストールしたもの
1. VsCode
1. Homebrew
1. git
1. zsh

## Homebrewのインストール
```sh:Homebrew install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```
__↑ XCodeはここで自動インストールしてくれる！！__
```sh:インストール完了後
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/{UserName}/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"             
```
:::note warn
{UserName}は変更必須
:::

```sh:brewのインストール確認
brew -v
```

## gitのインストール
```sh:git install
brew install git

#確認
git -v
```


## zshのインストール
```sh:zsh install
brew install zsh

#ログインシェルになってるか確認（ちなみに自分の環境ではこの段階でログインシェルになっていた）
echo $SHELL  
```

## zinit/各種便利プラグイン導入
昔はoh-my-zshを使用していたが、今回は流行ってるっぽいのでzinitを使ってみる

```sh:install zsh
#インストール
zsh -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"

#zshrc更新
source ~/.zshrc
```

### powerline-shellで見た目を変える
今回は[powerline-shell](https://github.com/b-ryan/powerline-shell)を使う


```zsh:install powerline-shell
git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell


#pythonインストールしておかなきゃ
brew install python
python3 setup.py install

#変なのが出力されればOK
powerline-shell
```
インストール完了後は、zshrcに記載する
```zsh:.zshrc
function powerline_precmd() {
    PS1="$(powerline-shell --shell zsh $?)"
}

function install_powerline_precmd() {
  for s in "${precmd_functions[@]}"; do
    if [ "$s" = "powerline_precmd" ]; then
      return
    fi
  done
  precmd_functions+=(powerline_precmd)
}

if [ "$TERM" != "linux" -a -x "$(command -v powerline-shell)" ]; then
    install_powerline_precmd
fi

```
こんな感じになる〜〜
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3657054/1806b33a-8926-f88f-5794-6fbf535213fe.png)

けど、いけてないので、設定変えていく
※画像には写っていないけど ~ の前にユーザー名とかホスト名とか含まれている
```zsh:configファイル作成
mkdir -p ~/.config/powerline-shell && \
powerline-shell --generate-config > ~/.config/powerline-shell/config.json
```
```zsh:configファイル修正
{ 
  "segments": [ 
    "virtual_env", 
    "username", #削除
    "hostname", #削除
    "ssh", 
    "cwd", 
    "git", 
    "hg", 
    "jobs", 
    "root" 
  ] 
} 
```

### zsh-completions導入
入力補完系のプラグイン
[zsh-completions](https://github.com/zsh-users/zsh-completions)

```zsh:install zsh-cpmpletions
brew install zsh-completions
```

インストール後何やら他のコマンドが必要だと言われる
```zsh
chmod -R go-w /opt/homebrew/share
```
```zsh:.zshrcに以下書き込み
  if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

    autoload -Uz compinit
    compinit
  fi
```
```zsh
source ~/.zshrc
rm -f ~/.zcompdump; compinit
```
これでTab押下でコマンド補完ができるように！！

### zsh-autosuggestionsのインストール
```zsh:install zsh-autosuggestions
brew install zsh-autosuggestions
```
その後.zshrcに以下追加
※上記zsh-completionsを記載した箇所に追記する
```diff:.zshrc
  if type brew &>/dev/null; then
    FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
+   source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
    autoload -Uz compinit
    compinit
  fi
```
```zsh
source ~/.zshrc
```

### pecoで過去履歴を簡単に使えるようにする
```zsh:install peco
brew install peco
```
```zsh:.zshrc
## コマンド履歴検索
function peco-history-selection() {
  local tac
  if which tac > dev/null; then
    tac="tac"
  else
    tac="tail -r"
  fi
  BUFFER=$(\history -n 1 | \
    eval $tac | \
    peco --query "$LBUFFER")
  CURSOR=$#BUFFER
  zle clear-screen
}
zle -N peco-history-selection
bindkey '^r' peco-history-selection
```

## おわりに
まだまだやらないといけない設定があるかもだけど一旦ここまで！
あとは、Qiita力も身につけねばと感じました。。。
もっと記事投稿していきます！！