🖥️

zsh を好みにカスタマイズする

2024/03/10に公開

RCLab です。便利な alias などを適当にガンガン追加すると、.zshrc がぐちゃぐちゃになった経験ありませんか?今回は改めてその設定を整理するとともに、意味などを掘り下げていきたいと思います。

忙しい人のために

https://github.com/RCLab0/zsh_config
今回整備した設定を GitHub 上で公開していますので、どなたでもお使いください。

要点

項目毎に設定をまとめておけば散らからないはずだという思想の元、設定ファイルを以下のようなディレクトリ構造で設置し、

$ tree
/User/rclab
├── .zsh
│   ├── directory.zsh
│   ├── git.zsh
│   └── history.zsh
└── .zshrc

.zshrc 内で source ~/.zsh/config.zsh を呼び出すことにしました。

.zshrc 該当箇所
# load seperated config files
for conf in "$HOME/.zsh/"*.zsh; do
  source "${conf}"
done
unset conf

せっかくなので、各種設定ファイルも除いてみましょう。

directory.zsh

https://github.com/RCLab0/zsh_config/blob/main/.zsh/directory.zsh
cd - で直前にいたディレクトリにしか戻れないの不便じゃない?不便ですよね!それを解決してくれるのが autopushdcd コマンドを発行した際に自動的に pushd してくれるみたい。
恥ずかしながら pushd コマンドをこの時まであまり理解していませんでした。思わぬところから解決が降ってきて知識整備って大事だなって思いました。

history.zsh

https://github.com/RCLab0/zsh_config/blob/main/.zsh/history.zsh
各 option の意味も書いているので、好みに合わせて設定できます。

git.zsh

https://github.com/RCLab0/zsh_config/blob/main/.zsh/git.zsh

  1. git-completions を初期設定時に自動で入れてくれる
    $HOME/.zsh/git-completions の存在確認を行い、なければ保管に必要なスクリプトを落として保存する優れもの
    ~/.zsh/git.zsh 該当箇所
    COMPLATION_DIR=$HOME/.zsh/git-completions
    if [ ! -d $COMPLATION_DIR ]; then
      mkdir $COMPLATION_DIR
      # CAUTION 外部サイトを使っているので、動かなくなる可能性あり
      curl -o $COMPLATION_DIR/git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
      curl -o $COMPLATION_DIR/_git https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh
    fi
    
  2. プロンプトを好みのスタイルに編集

    これは git のため設定というよりはシステム全体の設定な気もしており、 .zshrc に書いた方がいいかもと今は思っています。

の 2点が特にお気に入りです!登録されている alias の確認コマンドはおまけですね。

最後に

作ってみて思いましたが、正直 git の部分だけ切り出せばよかったんじゃないか?というコード量。コメントを残して見るたびに勉強になるという意味では分割した意味はあったと思います。
今後は fzf などを導入して、更なる快適な Terminal Life を送れるように取り組んでいきたいです。

最高に使いやすい環境をみなさんも自分で構築しましょう!

GitHubで編集を提案

Discussion