Macでzshを使うときのセットアップメモ。
環境
- macOS Sierra 10.12.1
- Homebrew 1.1.2
インストール
Macはデフォルトでzshが入っているので、常に使う場合はログインシェルを変更するだけで事足ります。
まずは次のコマンドでプリインストールされているシェルの一覧を表示させます。
1 2 3 4 5 6 7 8 9 10 |
$ cat /etc/shells # 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 |
これによると /bin/zsh
にあるようですね。バージョンも確認しておきます。
1 2 |
$ /bin/zsh --version zsh 5.2 (x86_64-apple-darwin16.0) |
執筆時点での最新版も同じ5.2のようなので、今回はこれをそのまま指定することに。
もし最新版ではないようなら、Homebrewなどで brew info zsh
して新しい方を使うといいでしょう。
(2017/01/02 追記)
追記時点でHomebrewからインストールできるバージョンが 5.3.1 になりました。
Homebrewを使ったインストール方法の記事を書きましたので、ご参考ください。
Homebrewで最新のzshをインストール
ログインシェルの変更
ターミナルからそのままコマンドで変更します。
パスワードが求められるので入力します。
1 2 |
$ chsh -s /bin/zsh Changing shell for user. |
なお、Homebrewなどでインストールしたシェルは先に /etc/shells
の一覧に追加する必要があります。
カスタムしよう
あとは .bashrc
と同様に .zshrc
を作ってカスタムしていきます。
1 2 3 4 5 6 7 8 |
# 自動補完を有効に autoload -Uz compinit; compinit # cd打たなくてもよくなる setopt auto_cd # コマンドtypoしたときにサジェストしてくれる setopt correct |
最初は最低限の設定だけを載せました。ぜひzshのパワーを感じてみてください!
補完機能を強化する
上の.zshrcでも、基本的な補完機能は有効になっていて、デフォルトコマンドの引数などもTabキーで補完ができます。
でもデフォルトでないコマンドは補完できないので、これを拡張してあらゆるコマンドで引数補完できるようにしていきます。
zsh-completionsをHomebrewでインストールします。
1 |
% brew install zsh-completions |
.zshrc の自動補完部分を修正します。
1 2 3 |
# 自動補完を有効に fpath=(/usr/local/share/zsh-completions $fpath) autoload -Uz compinit; compinit -u |
最後の行の -u オプションを忘れると、シェル起動毎にYesNoのプロンプトが表示されます。
.zshrcを変更したら、新しいターミナルを開いて動作確認をします。
vagrantやrailsなどの標準ではないコマンドを入力して、Tabキーでパラメータの補完が行われるのを確認できます。
所感
ターミナルは毎日でも使うものなので、わずかな改善でも積もり積もって作業時間の効率化が期待できます。
最強のシェルとも言われるzshを使い倒して幸せになりますヾ(o゚◡◡゚o)ノ゙