ブログ移転しました。5秒後にリダイレクトします。

zshの環境をoh-my-zshからPreztoに乗り換える

今までzshの環境構築には導入したときに何気なく入れたoh-my-zshを使っていました。しかし、最近になってなんとなく動作がもっさりしてきたので、oh-my-zshをアンインストールし、oh-my-zshに比べシンプルだというPreztoを導入してみます。

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

oh-my-zshリポジトリのREADMEに書いてある通りにコマンドを実行します。

$ uninstall_oh_my_zsh

ターミナルを再起動すると、zshではなく標準のシェル(Macではbash)が立ち上がるようになっていると思います。

そしたら、zshの設定ファイル(~/.zshrcなど)からoh-my-zshに関する項目を削除します。

ここは人によって異なると思いますが、自分の環境だとexport ZSH=$HOME/.oh-my-zshとかsource $ZSH/oh-my-zsh.shあたりを削除しました。ここらへんしっかりやりたい人は一から設定ファイルを書いてもいいと思います。自分はめんどくさかったので使いまわしました。

Preztoのインストール

これもPreztoのリポジトリのREADMEに従ってやっていきます。

まず現在はbashあたりが起動していると思うので、zshを起動します。

$ zsh

次にPreztoのリポジトリをクローンします。

$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

これでホームディレクトリの~/.zpreztoにクローンされました。

次に設定ファイルを作成するのですが、その前に既存の設定ファイルをバックアップしたい方は以下のコマンドでzsh-backupディレクトリにバックアップできます。自分は念のためバックアップしました。

$ mkdir zsh-backup
$ mv zshmv .zlogin .zlogout .zprofile .zshenv .zshrc zsh-backup/

そもそも存在しないファイルがある場合はエラーが出ますが当たり前なので気にしなくて大丈夫です。

そしたら、以下のコマンドで設定ファイルを作成します。

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

すると以下のようにホームディレクトリ幾つかの設定ファイルのリンクが貼られていると思います。

$ ls -al
lrwxr-xr-x     1 user  staff      35  2 20 15:20 .zlogin -> /Users/user/.zprezto/runcoms/zlogin
lrwxr-xr-x     1 user  staff      36  2 20 15:20 .zlogout -> /Users/user/.zprezto/runcoms/zlogout
lrwxr-xr-x     1 user  staff      38  2 20 15:20 .zpreztorc -> /Users/user/.zprezto/runcoms/zpreztorc
lrwxr-xr-x     1 user  staff      37  2 20 15:20 .zprofile -> /Users/user/.zprezto/runcoms/zprofile
lrwxr-xr-x     1 user  staff      35  2 20 15:20 .zshenv -> /Users/user/.zprezto/runcoms/zshenv
lrwxr-xr-x     1 user  staff      34  2 20 15:20 .zshrc -> /Users/user/.zprezto/runcoms/zshrc

最後にデフォルトのシェルをzshにします。

$ chsh -s /bin/zsh

これでターミナルを再起動するとテーマが適用されたzshが起動すると思います。 f:id:andooown:20180220170853p:plain

Preztoのアップデート

インストールしたときは最新のPreztoが導入されますが、この先のアップデートは手動で行う必要があります。 アップデートは以下のコマンドで行うことができます。

$ cd $ZPREZTODIR
$ git pull
$ git submodule update --init --recursive

追記(2018/2/20)

zshのテーマをPowerlineにしようとしたらフォントの導入でハマったので追記します。

Preztoのテーマの一覧

Preztoではprompt -pでテーマの一覧を見ることができます。 f:id:andooown:20180221001041p:plain

Preztoのテーマの変更

そしてテーマを変更するときは~/.zpreztorcに以下のように書きます。 (デフォルトの設定ファイルではすでにテーマが指定されてるのでそれを書き換える)

zstyle ':prezto:module:prompt' theme 'テーマ名'
# 例
# zstyle ':prezto:module:prompt' theme 'powerline'

その後テーマファイルを~/.zprezto/modules/prompt/functions/に配置します。

$ curl https://raw.github.com/davidjrice/prezto_powerline/master/prompt_powerline_setup > ~/.zprezto/modules/prompt/functions/prompt_powerline_setup

しかし、上記の例のようにPowerlineのテーマを適用して、ターミナルを再起動すると、フォントがうまく表示されず画像のようになると思います。 f:id:andooown:20180221000541p:plain これはPowerline用のフォントがインストール・適用されていないのが原因です。

フォントのインストール・適用

Powerline fontsをクローンなりダウンロードなりして、その中のinstall.shを実行してください。 これでフォントがインストールされます。

その後、ターミナルの設定のフォントをPowerline用のフォントに変更すると、Powerlineテーマが使えるようになります。 (自分はAnonymice Powerlineを選択しました) f:id:andooown:20180221002140p:plain

参考