oh-my-zsh から zplug+Prezto に移行する

zsh の環境を整えるにあたって元々は oh-my-zsh を使っていたのですが、設定の豊富さが逆に自分にはオーバースペックだと感じるようになったため、zplugPrezto で環境を整備し直しました。

oh-my-zsh のアンインストール

$ uninstall_oh_my_zsh

また、.zshrc などから oh-my-zsh に関わる記述を削除します。

export ZSH=$HOME/.oh-my-zsh
source $ZSH/oh-my-zsh.sh

このとき、デフォルトのシェルが bash に戻ってしまった場合は zsh に設定し直してください。

$ zsh
$ chsh -s /bin/zsh

zplug へ移行する

$ curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh

Homebrew でもインストール可能ですが、公式は上の方法を推奨しているため curl でインストールします。
次に .zshrc にインストールしたいプラグインを追記します。私は取り合えず以下のような感じにしてみました。

source ~/.zplug/init.zsh

zplug "sorin-ionescu/prezto"
# prezto plugins
zplug "modules/environment", from:prezto
zplug "modules/terminal", from:prezto
zplug "modules/editor", from:prezto
zplug "modules/history", from:prezto
zplug "modules/directory", from:prezto
zplug "modules/spectrum", from:prezto
zplug "modules/utility", from:prezto
zplug "modules/completion", from:prezto
zplug "modules/prompt", from:prezto

zplug "zsh-users/zsh-autosuggestions"
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-syntax-highlighting", defer:2
zplug "b4b4r07/enhancd", use:init.sh
zplug "b4b4r07/zsh-gomi", if:"which fzf"

if ! zplug check --verbose; then
  printf 'Install? [y/N]: '
  if read -q; then
    echo; zplug install
  fi
fi

zplug load --verbose

# Source Prezto.
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
  source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
fi

Prezto のセットアップ

zplug でインストールされたパッケージは $ZPLUG_HOME/repos 以下に配置されるため、ホームディレクトリ直下へのシンボリックリンクを貼ります。

$ ln -s $ZPLUG_HOME/repos/sorin-ionescu/prezto $HOME/.zprezto

次に Prezto のセットアップを行います。またこのとき .zshrc.zprofile.zlogin.zlogout.zshenv.zpreztorc は上書きされてしまうので注意してください。

$ setopt EXTENDED_GLOB
  for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
    ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
  done

Prezto のテーマを変更

最後に Prezto のテーマの変更を行います。.zpreztorc'テーマ名' を編集することで変更が可能です。

# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'テーマ名'

テーマの一覧は $ prompt -p で見ることができますが、今回はデフォルトにはない pure に変更してみます。

以下のコマンドでインストールします。

$ npm install --global pure-prompt

先ほどの 'テーマ名'pure に変更して完了です。

zstyle ':prezto:module:prompt' theme 'pure'