ターミナルをオシャにする

## はじめに
ちょっとキャッチーなタイトルですいません。
半分ふざけてますが半分本気のタイトルです。

ここ数年でリモートツールが多く登場しましたが、
その中でもエンジニアの開発業務に欠かせない「画面共有」

画面共有する時、IDEやターミナル見せること、多くありませんか？
先輩のターミナル画面見て「なんか自分のとちゃうぞこれ」と思ったことありませんか？

この記事ではターミナルの見た目の変更から予測変換、補完などオシャレの第一歩目をいくつか紹介します！

## 前提
本記事ではmacOS Catalina以降でデフォルトのシェルとして採用されている、zshについて扱います。
自身のPCがzshなのかbashなのか分からない場合はまずは確認してみましょう。
ターミナルを開いて下記を入力します。

```zsh
$ echo $SHELL
```

結果が`/bin/zsh`であればzshが使われていることになります。
そうでない場合は下記を入力してzshを使うように変更します。

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

## Oh My Zshをインストール
今回はOh My Zshを使ってオシャレします。
Oh My Zshはオシャレをするためのフレームワークです。
オシャレの土台みたいなイメージで良いかと思います


下記コマンドを実行しインストールします
```zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

ホームディレクトリにある`~/.zshrc`というファイルを弄ることで、色々オシャレすることができるようになります。

## テーマを選ぶ
見た目を変える際はテーマを選ぶのが手っ取り早いでしょう
下記カタログから選びなさい！
https://github.com/ohmyzsh/ohmyzsh/wiki/themes

選べたら下記コマンドで`~/.zshrc`を開き、編集していきます。（VSCodeなどで編集するとかでもOK）
```zsh
$ vi ~/.zshrc
```
開いたら選んだテーマを下記のように指定し、保存します（私はCandy）

```zsh:~/.zshrc
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time Oh My Zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="candy"
```

保存が終わったら下記コマンドで設定を反映させます
```zsh
$ source ~/.zshrc
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/2e6f7895-a405-02ed-31d4-97cb0e76cabf.png)

これでオシャレの第１歩が踏み出せましたね！

## コマンド周りをオシャレする
### zsh-syntax-highlighting
zsh-syntax-highlightingを使えば、コマンド入力の構文を色分けして表示してくれるようになります。(使えるコマンドは緑色に、使えないコマンドは赤色に表示してくれます）
まずはzsh-syntax-highlightingをインストールします。実行するディレクトリの場所はどこでもOKです。
```zsh
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
```
次に再び`~/.zshrc`を開き、下記のように編集します。ちなみにgitはデフォルトで入っているものになります。

```zsh
$ vi ~/.zshrc
```
```zsh:~/.zshrc
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git zsh-syntax-highlighting)
```
保存が終わったら下記コマンドで設定を反映させます
```zsh
$ source ~/.zshrc
```
こんな感じにコマンドとして認識されているものかどうかで色分けされるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/3840e8a2-0408-27a2-eb20-5145968096ff.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/641dbe81-9d28-697c-7b82-a15c3b09cced.png)



### zsh-completions
zsh-completionsを使えばコマンド補完が効くようになります。
先ほどと同じ手順でインストール、`~/.zshrc`を編集します

```zsh
$ git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions
```
```zsh
$ vi ~/.zshrc
```
```zsh:~/.zshrc
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git zsh-syntax-highlighting zsh-completions)

# zsh-completionsの設定
autoload -U compinit && compinit -u
```
```zsh
$ source ~/.zshrc
```
これでコマンド入力中に Tab キーを押すとその後の候補を補完表示してくれるようになります。

## PC買い替えるたびに設定を思い出せない
そんな時はgitなどで`~/.zshrc`をしておくのが良いかと思います☝️

## 終わりに
本記事では本当に本当に最低限のオシャレ設定を紹介しました
これで画面共有も怖く…ない？

他にもいろんなプラグインがたくさんあるので興味ある方は「ターミナル カスタマイズ」などのキーワードで色々調べてみることをオススメします！
オシャレに終わりはない…

## 参考
https://support.apple.com/ja-jp/102360

https://github.com/ohmyzsh

https://qiita.com/iwaseasahi/items/a2b00b65ebd06785b443