[macOS General] Homebrew で zsh を導入する

手順をまとめていたつもりが、まとまっていなかったようなのでまとめる。

初期の導入や実践にあたっては、こちらのエントリで勉強させていただきました。
ここから始めるとわかりやすいです。

Contents

インストール

Homebrew 版をインストールする場合。

$ brew install zsh --disable-etcdir
$ brew install zsh-completions

zsh-completions は、zsh の補完機能をさらに強力なものにしてくれる。

シェルの切り替え

現在のシェルを確認する

$ dscl localhost -read Local/Default/Users/$USER UserShell
UserShell: /bin/bash

/etc/shells に追記する

echo "/usr/local/bin/zsh" >> /etc/shells と書いたらエラー。

$ sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
Password:
$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/zsh

シェルを切り替える

$ chsh -s /usr/local/bin/zsh

.zshrc を設定する

こちらをありがたく利用して、必要なものを追記していきます。

zsh-completions の設定を追記する

fpath に zsh-completions を追加する。

.zshrc
# 補完
# for zsh-completions
fpath=(/usr/local/share/zsh-completions $fpath)
# 補完機能を有効にする
autoload -Uz compinit
compinit -u

.zshenv を作成する

あわせて .zshenv も作成し、homebrew に path を通しておきます。

.zshenv
export PATH=/usr/local/bin:$PATH

Homebrew 導入時に、.bash_profile あたりに記載した内容ですね。

zcompdump を再構築する

公式の通りに実行する。

$ rm -f ~/.zcompdump; compinit

以上。

ログインし直すと切り替わっていることが確認できる。

補遺

シンプルに使っていたつもりでも、意外と設定を加えていたので、やはり dotfiles として管理しておく必要性を感じました。
こちらを参考に .zshrc と .zshenv など、設定をいろいろ見直してみる。

.zshrc に関しては、ほかにもこの辺りの設定を加えていくことになるはず。

その他にも、この辺りとか。

node, ruby まわり。