Overview
特に強い理由はないですが、長年愛用してきた Oh-My-Zsh から Prezto に移行しました。
強い理由はないと記載したけど、M1Pro でさえ若干ターミナルのもっさり感を感じていたのと、さすがにメンテナンスがされてなさすぎるプラグインもあって FW として微妙だなと思ったので一思いに乗り換えた、という感じです。
最初は何も入れない素の状態のターミナルを使おうかなと思いましたが、使ってて面白くないのでカスタマイズするために少なくともここ一年くらいはちゃんと動いてそうな Prezto を採用しました。
移行方法
Oh-My-Zsh の削除
手元の zshrc の中から oh-my-zsh に関する箇所だけを削除します。
export ZSH=/Users/$(whoami)/.oh-my-zsh ZSH_THEME="$Theme" plugins=(git) source $ZSH/oh-my-zsh.sh
削除後に $HOME にある .oh-my-zsh
を削除します。
以上です。
Prezto の導入
事前に手元の zshrc を backup しておいて削除します。
cp $HOME/.zshrc $HOME/.zshrc.back rm .zshrc
その後 https://github.com/sorin-ionescu/prezto#installation に記載してある通りにコマンドを叩いてシェルを再起動すればすぐに使えるようになりました。
Editor の設定変更
Prezto で自動で参照される zsh の設定では Editor が nano になってしまっているので vim に変更します。
$ vim .zshprofile export EDITOR='vim' // vim に変更 export VISUAL='vim' // vim に変更 export PAGER='less' // vim に変更
Git の情報の表示
Theme によっては Git のブランチを表示してくれる Theme がありますが、Prezto をインストールした時点では Theme にないので https://github.com/sorin-ionescu/prezto#themes の3つ目に記載されている .zpreztorc
内の preload module list に git
を追加する、という作業を行う必要があります。
zstyle ':prezto:load' pmodule \ 'environment' \ 'terminal' \ 'editor' \ 'history' \ 'directory' \ 'spectrum' \ 'utility' \ 'completion' \ 'history-substring-search' \ 'prompt' \ 'git' # <- New
移行してみて
もっさり感は消えたけど以下のエントリで書かれてる内容の通りにプロファイリングしてみたら劇的に変わってる、というほどでもなかったです。
ただ確実に早くなったなと思ったのは git checkout コマンドで既存のブランチの一覧を保管するときに、今まではまじでびっくりするくらい遅かったんですが、これが快速になりました。
ただよくわからないのが、Prezto で history コマンドを叩くと直近10件程度しか表示されず、history の範囲を指定するような環境変数もなかったので一旦 alias hist=cat .zsh_history | peco
で alias を張っています
元々の zsh の仕様って初めて知りました。今までは oh-my-zsh がうまいことやってくれていたんですね。
今は以下の設定を zshrc に入れて自前の history として動かしてます。
unalias history alias history='fc -l -i 1 | fzf'
おしまい。