かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Mac M2 ターミナル (iTerm2 zsh) をいい感じにする

前回までのあらすじ

ターミナルをいい感じにする設定のメモ
ほぼ こちらの記事 のままです

環境・前提

設定ファイルの準備

~/.zshrc に設定を追加していく。~/.zshrc がない場合は作成する

% touch ~/.zshrc

1. コマンドやディレクトリの補完

zsh-completions

ターミナルの補完を強化してくれるプラグインを導入

% brew install zsh-completions

~/.zshrc に設定を追加

if type brew &>/dev/null; then
  FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
  autoload -Uz compinit && compinit
fi

設定を反映

% chmod -R go-w '/opt/homebrew/share/zsh'
% source ~/.zshrc
% rm -f ~/.zcompdump; compinit

コマンド入力中に TAB を押すとサジェストが表示されるようになる

zsh-autosuggestions

ターミナルのコマンド履歴に基づいてコマンド候補を表示、入力補完もしてくれるプラグインを導入

% brew install zsh-autosuggestions

~/.zshrc に設定を追加

source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh

補完関係の設定

# ~/.zshrc
# 補完で小文字でも大文字にマッチさせる
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
# 補完候補一覧をカラー表示
autoload colors
zstyle ':completion:*' list-colors ''
# 補完候補を詰めて表示
setopt list_packed
# コマンドのスペルを訂正
setopt correct
# ?, &, * でエラーにならないようにする
setopt nonomatch

2. プロンプト (ターミナル) の表示をいい感じにする

プロンプトの表示設定を確認するコマンド

% echo $PROMPT

カラーモジュールの有効化

~/.zshrc

autoload -Uz colors && colors

プロンプトの表示設定

プロンプトの表示・カラー設定は次のような感じ

%F{COLOR}<色をつける文字>%f

%F%f に挟まれた文字に {COLOR} の色がつく

~/.zshrc

# User名: ~から始まるフルパス 改行
PROMPT="%n:%~ "$'\n'"%# "
  • %n$USERNAME
  • %~$HOME~ にしたフルパスを表示 ~ 始まりのフルパス
  • "$'\n'" … 行末で改行
  • %# … シェルが特権付きで実行されている場合は '#' 、そうでない場合は '%' を表示

👇 カラー設定を追加

PROMPT="%F{034}%n%f:%F{037}%~%f "$'\n'"%# "

zsh-git-prompt を使って git の状態を表示

% brew install zsh-git-prompt

PROMPT に '$(git_super_status)' を追加するるといい感じに git の状態を表示してくれる

~/.zshrc

+ source $(brew --prefix)/opt/zsh-git-prompt/zshrc.sh

- PROMPT="%n:%~ "$'\n'"%# "
+ PROMPT='%F{034}%n%f:%F{037}%~%f $(git_super_status)'
Mac OS Monterey では python コマンドの設定が必要

zsh-git-prompt の表示には python コマンドが必要だが、Mac OS Monterey は python3 コマンドのみで python コマンドが無いので python コマンドを python3エイリアスに設定する必要がある

~/.zshrc

if type brew &>/dev/null && type $(brew --prefix)/bin/python3 &>/dev/null; then
  alias python="$(brew --prefix)/bin/python3"
  alias pip="$(brew --prefix)/bin/pip3"
else
  alias python="/usr/bin/python3"
  alias pip="/usr/bin/pip3"
fi

3. コマンド実行後に改行 (空行) を入れる

コマンド実行後の入力場所をよく見失うので、コマンド実行後に改行 (空行) を入れる

~/.zshrc

add_newline() {
  if [[ -z $PS1_NEWLINE_LOGIN ]]; then
    PS1_NEWLINE_LOGIN=true
  else
    printf '\n'
  fi
}

precmd() {
  add_newline
}

4. alias の作成

ll コマンドが使いたいのでエイリアスとして設定する
~/.zshrc

# alias
alias ls="ls -FG"
alias la="ls -a"
alias ll='ls -al'

これでいい感じのターミナルがいい感じになりました!
お好みで色々と設定を追加すればOK
₍ ᐢ. ̫ .ᐢ ₎ おわり


[参考]

いい感じのお皿がいい感じですネタ