自分的にめんどくさくないターミナル設定


# はじめに

この記事は、Qiita Advent Calendar 5日目の記事です。
以下の記事より、すべての記事をご覧になれます。

https://qiita.com/0_terarin_0/items/2b60d47a2d0e64a273c3

# 本編

前回の記事でAlacrittyのビルドをしました。今回は僕が現時点で利用している設定をAlacrittyとZSHの設定を共有したいと思います。

## Alacrittyの設定

Alacrittyはユーザーディレクトリに```.alacritty.toml```というファイルを作ってそこに設定を記述します。詳しい設定は以下のサイトをご覧ください。

https://alacritty.org/config-alacritty.html

```toml:.alacritty.toml
import = [
    "~/.config/alacritty/themes/themes/challenger_deep.toml"
]

[window]
padding = { x = 5, y = 5}

[font]
offset = { x = 0, y = 5 }
```

### テーマの設定

見てわかる通り、テーマを設定しています。

https://github.com/alacritty/alacritty-theme

```zsh
mkdir -p ~/.config/alacritty/themes
git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes
```

ちなみに、僕はchallenger_deepというテーマを設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/51abdb63-d39e-524f-602e-735f14de4150.png)

### その他設定している内容

文字の余白とフォントの行間を設定しています。設定の方法がとても簡単ですね。
ちなみに他の方々はいろんなことを設定していますが、僕はしていません。というのも、長らく使っていたのはMac純正のTerminalなのでそこまで弄らなくても慣れてしまいました。が、来年は時間ができる予定なのでちょっとずついじっていきたいと思います。

## ZSHの設定

続いてZSHの設定です。と、その前に。僕はもともと```~/.zshrc```に色々な設定をしていましたが、今回使おうとする```Oh My Zsh```はおもいっきし問答無用で```~/.zshrc```を使うんですよね。なので、どこか別のファイルに記載できるのがいいなと思っていました。

### シェルの初期化ファイルの配置場所

ちょうど下の記事を見ました。

https://qiita.com/muran001/items/7b104d33f5ea3f75353f

ここにある通り、何個かZSHの設定ファイルがあるようなのですね。なので、僕は```.zshenv```に元々書いてあった```.zshrc```の内容を移行させました。

### Oh My Zshのインストール

超イケイケ便利ツールです。ぜひ皆様方もインストールしましょう。

https://ohmyz.sh/

```zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```

### zsh-autosuggestionsの設定

過去に利用したコマンドを勝手に保管してくれる素晴らしい拡張機能です。

https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md

このページのOh My Zshの欄に書いてある通りにします。

```zsh
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
```

次に、```.zshrc```のプラグインに記載します。

```zsh:~/.zshrc
plugins=(
    git
    zsh-autosuggestions
)
```

これでインストール完了！

### テーマの設定

Oh My Zshのテーマを設定しています。が、僕の場合は少しカスタムしていますので、それを下に記載しておきます。

```zsh:mytheme.zsh-theme
# af-magic.zsh-theme
#
# Author: Andy Fleming
# URL: http://andyfleming.com/

# dashed separator size
function afmagic_dashes {
  # check either virtualenv or condaenv variables
  local python_env_dir="${VIRTUAL_ENV:-$CONDA_DEFAULT_ENV}"
  local python_env="${python_env_dir##*/}"

  # if there is a python virtual environment and it is displayed in
  # the prompt, account for it when returning the number of dashes
  if [[ -n "$python_env" && "$PS1" = *\(${python_env}\)* ]]; then
    echo $(( COLUMNS - ${#python_env} - 3 ))
  else
    echo $COLUMNS
  fi
}

# primary prompt: dashed separator, directory and vcs info
PS1="${FG[237]}\${(l.\$(afmagic_dashes)..-.)}%{$reset_color%}
%F{magenta}($(uname -m))%f ${FG[032]}%~\$(git_prompt_info)\$(hg_prompt_info) ${FG[105]}%(!.#.»)%{$reset_color%} "
PS2="%{$fg[red]%}\ %{$reset_color%}"

# right prompt: return code, virtualenv and context (user@host)
RPS1="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
if (( $+functions[virtualenv_prompt_info] )); then
  RPS1+='$(virtualenv_prompt_info)'
fi
RPS1+=" ${FG[237]}%n@%m%{$reset_color%}"

# git settings
ZSH_THEME_GIT_PROMPT_PREFIX=" ${FG[075]}(${FG[078]}"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="${FG[214]}*%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="${FG[075]})%{$reset_color%}"

# hg settings
ZSH_THEME_HG_PROMPT_PREFIX=" ${FG[075]}(${FG[078]}"
ZSH_THEME_HG_PROMPT_CLEAN=""
ZSH_THEME_HG_PROMPT_DIRTY="${FG[214]}*%{$reset_color%}"
ZSH_THEME_HG_PROMPT_SUFFIX="${FG[075]})%{$reset_color%}"

# virtualenv settings
ZSH_THEME_VIRTUALENV_PREFIX=" ${FG[075]}["
ZSH_THEME_VIRTUALENV_SUFFIX="]%{$reset_color%}"
```

あとはテーマの変更を加えて終わりです。

```zsh:~/.zshrc
ZSH_THEME="mytheme"
```

これが、昨日の記事にも載せましたが僕のターミナル環境です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/820323b0-5dbf-98d8-efae-8810f127440c.png)

以上！

# 最後に

今回はターミナルを設定しましたが、これ、設定を自動化できたらいいなとか勝手に考えていました。次の記事にしようかな（）