俺のターミナル環境設定備忘録

毎回何入れてるか忘れるので備忘録。

# iTerm2をインストール

https://iterm2.com/

# Homebrewをインストール

https://brew.sh/index_ja.html

```bash
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

# zshをインストール

既存のバージョンを確認する

```bash
$ which zsh
/bin/zsh

$ /bin/zsh --version
zsh 5.7.1 (x86_64-apple-darwin19.0)
```

Homebrewでインストールできるバージョンを確認する

```bash
$ brew info zsh
zsh: stable 5.7.1 (bottled), HEAD
(略)
```

Homebrewでインストールする

```bash
$ brew install zsh
```

Homebrewでインストールしたバージョンを確認する

```bash
$ which zsh
/usr/local/bin/zsh

$ /usr/local/bin/zsh --version
zsh 5.7.1 (x86_64-apple-darwin19.0.0)
```

Mac新しいせいかバージョン一緒やった:hugging:

# oh my zshをインストール

https://github.com/ohmyzsh/ohmyzsh

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

# iTerm2のシェルをzshに変更する

1. iTerm2 > Preferences > Profiles > General
2. CommandのプルダウンをLogin ShellからCommandに変更して、表示されるテキストエリアに「/usr/local/bin/zsh」を設定する
3. iTerm2を再起動する

# oh my zshの設定変更

```zsh
$ vim ~/.zshrc
```

## pathの部分のコメントアウトを解除


```vim:~/.zshrc
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
```

↓


```vim:~/.zshrc
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
```

## テーマを設定する

https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

個人的にgeoffgarsideが好き。

```vim:~/.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="robbyrussell"
```

↓


```vim:~/.zshrc
# If you come from bash you might have to change your $PATH.
# 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="geoffgarside"
```

反映

```zsh
$ source ~/.zshrc
```


# Zshの補完定義を追加する

https://github.com/zsh-users/zsh-completions

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

```zsh
$ vim ~/.zshrc
```

以下追記、変更。

```vim:~/.zshrc
plugins=(… zsh-completions)
autoload -U compinit && compinit
```

反映

```zsh
$ source ~/.zshrc
```

# Zshに基本設定を仕込む

oh my zshのカスタムフォルダに入れる形にしてます。
意味はない。
追記した分あとで判別しやすいかなと思って。


```zsh
$ vim ~/.oh-my-zsh/custom/base.zsh
```

```vim:~/.oh-my-zsh/custom/base.zsh
# 文字コードの指定
export LANG=ja_JP.UTF-8

# 日本語ファイル名を表示可能にする
setopt print_eight_bit

# シェル操作をvim互換にする
bindkey -v

# cd -<tab>で以前移動したディレクトリを表示
setopt auto_pushd

```

```zsh
$ vim ~/.oh-my-zsh/custom/history.zsh
```

```vim:~/.oh-my-zsh/custom/history.zsh
# ヒストリファイルを指定
HISTFILE=~/.zsh_history

# ヒストリに保存するコマンド数
HISTSIZE=10000

# ヒストリファイルに保存するコマンド数
SAVEHIST=10000

# 重複するコマンド行は古い方を削除
setopt hist_ignore_all_dups

# 直前と同じコマンドラインはヒストリに追加しない
setopt hist_ignore_dups

# コマンド履歴ファイルを共有する
setopt share_history

# 履歴を追加 (毎回 .zsh_history を作るのではなく)
setopt append_history

# 履歴をインクリメンタルに追加
setopt inc_append_history

# historyコマンドは履歴に登録しない
setopt hist_no_store

# 余分な空白は詰めて記録
setopt hist_reduce_blanks

# 補完のスタイル
zstyle ':completion:*:default' menu select
```


反映

```zsh
$ source ~/.zshrc
```

# コマンドヒストリーの検索を助けるあれ(peco)インストール

https://qiita.com/itigoppo/items/dc69860dc84acbfcb97f

```zsh
$ brew install peco
```

```zsh
$ vim ~/.oh-my-zsh/custom/peco.zsh
```

```vim:~/.oh-my-zsh/custom/peco.zsh
function peco-select-history() {
    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-select-history
bindkey '^r' peco-select-history
```

反映

```zsh
$ source ~/.zshrc
```

# typoを楽しいことにするあれ(imgcat)インストール

https://qiita.com/itigoppo/items/a4e68f72ff2ec2a1c883


iTerm2の公式からシェルスクリプトをコピーします

https://iterm2.com/utilities/imgcat

/usr/local/bin/imgcat

を編集モードで開いてコピーしたシェルスクリプトを貼り付け

ファイルに権限を付与

```zsh
sudo chmod +x /usr/local/bin/imgcat
```

```zsh
$ vim ~/.oh-my-zsh/custom/command-not-found.zsh
```

```vim:~/.oh-my-zsh/custom/command-not-found.zsh
function command_not_found_handler()
{
  if [ -e /usr/local/bin/imgcat ];then
    if [ -e ~/Pictures/command_not_found.jpg ];then
      imgcat ~/Pictures/command_not_found.jpg
    fi
  fi
  echo "$1とかないっちゃろ？"

  return 127
}
```

反映

```zsh
$ source ~/.zshrc
```

# iTerm2の背景をポケモンにする

https://github.com/LazoCoder/Pokemon-Terminal

## python3があるか確認

```zsh
$ python3 --version
Python 3.7.3
```

一応brewで確認

```zsh
$ brew info python3
python: stable 3.7.6 (bottled), HEAD
(略)
$ brew info python
python: stable 3.7.6 (bottled), HEAD
(略)
```

今回はMacにすでにあるから飛ばします。


## ポケモンゲットだぜ

```zsh
$ sudo pip3 install git+https://github.com/LazoCoder/Pokemon-Terminal.git
```

```zsh
$ pokemon 2
```

フシギダネがスキちゃん。


## iTerm2の起動時にポケモンが反映されるようにする

1. iTerm2 > Preferences > Profiles > General
2. CommandのSend text at start:のテキストエリアに「pokemon 2; clear」と入力
3. iTerm2を再起動する

# SSHで毎回パスフレーズ聞かれるのめんどくさいのでssh-agentに鍵を登録しておく

```zsh
$ ssh-add -K ~/.ssh/id_rsa
```

(以下2022-12-26追記)

# gitのcuiいれる

```zsh
$ brew install tig
```

ログが見やすくなってよい

# コマンドをサジェストするようにする

https://github.com/zsh-users/zsh-autosuggestions

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

```zsh
$ vim ~/.zshrc
```

以下追記、変更。

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

反映

```zsh
$ source ~/.zshrc
```

(以下2024-02-01追記)

# フォントを設定する

```zsh
$ brew tap homebrew/cask-fonts
$ brew install font-hackgen
$ brew install font-hackgen-nerd
```

1. iTerm2 > Preferences > Profiles > Text
1. Font項目でHackGen Console NFを選択
1. Regular、14px