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


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

iTerm2をインストール

Homebrewをインストール

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

zshをインストール

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

$ which zsh
/bin/zsh

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

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

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

Homebrewでインストールする

$ brew install zsh

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

$ which zsh
/usr/local/bin/zsh

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

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

oh my zshをインストール

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の設定変更

$ vim ~/.zshrc

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

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

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

テーマを設定する

個人的にgeoffgarsideが好き。

~/.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"

~/.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"

反映

$ source ~/.zshrc

Zshの補完定義を追加する

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

以下追記、変更。

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

反映

$ source ~/.zshrc

Zshに基本設定を仕込む

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

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

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

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

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

$ vim ~/.oh-my-zsh/custom/history.zsh
~/.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

反映

$ source ~/.zshrc

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

$ brew install peco
$ vim ~/.oh-my-zsh/custom/peco.zsh
~/.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

反映

$ source ~/.zshrc

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

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

/usr/local/bin/imgcat

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

ファイルに権限を付与

sudo chmod +x /usr/local/bin/imgcat
$ vim ~/.oh-my-zsh/custom/command-not-found.zsh
~/.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
}

反映

$ source ~/.zshrc

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

python3があるか確認

$ python3 --version
Python 3.7.3

一応brewで確認

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

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

ポケモンゲットだぜ


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

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

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

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

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

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