🖥️
zsh を好みにカスタマイズする
RCLab です。便利な alias などを適当にガンガン追加すると、.zshrc がぐちゃぐちゃになった経験ありませんか?今回は改めてその設定を整理するとともに、意味などを掘り下げていきたいと思います。
忙しい人のために
今回整備した設定を 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
cd -
で直前にいたディレクトリにしか戻れないの不便じゃない?不便ですよね!それを解決してくれるのが autopushd
!cd
コマンドを発行した際に自動的に pushd
してくれるみたい。
恥ずかしながら pushd
コマンドをこの時まであまり理解していませんでした。思わぬところから解決が降ってきて知識整備って大事だなって思いました。
history.zsh
各 option の意味も書いているので、好みに合わせて設定できます。
git.zsh
- 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
- プロンプトを好みのスタイルに編集
これは git のため設定というよりはシステム全体の設定な気もしており、.zshrc
に書いた方がいいかもと今は思っています。
の 2点が特にお気に入りです!登録されている alias の確認コマンドはおまけですね。
最後に
作ってみて思いましたが、正直 git の部分だけ切り出せばよかったんじゃないか?というコード量。コメントを残して見るたびに勉強になるという意味では分割した意味はあったと思います。
今後は fzf などを導入して、更なる快適な Terminal Life を送れるように取り組んでいきたいです。
最高に使いやすい環境をみなさんも自分で構築しましょう!
Discussion