今までbash以外のシェルを使ったことがないのですが、
zshが良いと結構聞くので、試しに入れてみます。
入力補完が効くのがめっちゃ便利と聞いていたのですが
補完を効かせるためには、zshを入れるだけではなく、別途パッケージを入れる必要があるとのことで、その辺もやってみました。
動作環境
OS:macOS Big Sur(11.6)
zsh 導入
macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになりました。
https://qiita.com/iwaseasahi/items/a2b00b65ebd06785b443
とのことで、
自分の動作環境は、Big Surなのでおそらくデフォルトのログインシェルがzsh
になっているかと思いますが、確認してみます。
// 現在設定されているシェルを出力
$ echo $SHELL
/bin/bash
bashがデフォルトで設定されています。
何かのタイミングで自分で設定変更したかな?
とにかく、zshを使うように設定します。
ひとまず、zshがインストールされているか確認してみます。
// インストールされているシェル一覧表示
$ cat /etc/shells
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh ⇦ zshあった!
デフォルトでzshが入っていたので、使います。
// デフォルトのシェルをzshに変更
$ chsh -s /bin/zsh
Changing shell for ***
Password for ***:
// ターミナルの別タブを開き直して、設定されているシェルを確認
$ echo $SHELL
/bin/zsh
とのことで、使用するシェルをzshに変更できました。
zshの設定をいじる
とりあえず、aliasを設定してみます。
zshの設定は~/.zshrc
で管理するようです。~/.zshrc
の設定を反映するには、source ~/.zshrcすれば良いそう。
bashとかと一緒ですね。
// 以下追記
$ vim ~/.zshrc
alias ll='ls -la'
alias h='history | grep '
alias ga='git add'
alias gcm='git commit -m'
alias gd='git diff'
alias gdc='git diff --cached'
alias gs='git status'
alias gb='git branch'
alias gc='git checkout'
alias gss='git stash'
alias gcl='git clean'
alias gca='git commit --amend'
alias dcom='docker-compose'
alias dcon='docker container'
alias dn='docker network'
alias dni='docker network inspect'
alias d='docker'
alias gcp="git cherry-pick"
// 設定反映
$ source ~/.zshrc
これで設定完了!
便利そうなパッケージを入れる
zsh-completions
入力補完をめちゃくちゃやってくれて便利らしい。
macなので、brewで入れて行きます。
// brew install
$ brew install zsh-completions
Updating Homebrew...
==> Auto-updated Homebrew!
--- 略---
==> Caveats
To activate these completions, add the following to your .zshrc:
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
autoload -Uz compinit
compinit
fi
You may also need to force rebuild `zcompdump`:
rm -f ~/.zcompdump; compinit
Additionally, if you receive "zsh compinit: insecure directories" warnings when attempting
to load these completions, you may need to run this:
chmod -R go-w '/usr/local/share/zsh'
--- 略---
無事入りました。
いくつかメッセージが表示されているので、それらに従います。
// ~/.zshrc に設定追加
$ vim ~/.zshrc
// 以下追記
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
autoload -Uz compinit
compinitz
fi
// 変更反映
$ source ~/.zshrc
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
何やら表示されました。compinit
で、入力補完のための設定をしてくれるらしいのですが、
補完対象に設定しようとしているディレクトリに、insecure directories
=安全でないディレクトリが含まれているようです。
brew install した時のメッセージを改めて見ると、
Additionally, if you receive "zsh compinit: insecure directories" warnings when attempting
to load these completions, you may need to run this
chmod -R go-w '/usr/local/share/zsh'
どうやら、
表示されているchmod -R go-w ‘/usr/local/share/zsh’と実行しないと、
そのディレクトリは安全でないから補完対象に含めませんよ、ということみたいです。
折角なので、chmod実行します。
$ chmod -R go-w '/usr/local/share/zsh'
$ source ~/.zshrc
// 何も表示されなくなった!
問題なく、追加した設定が読み込めたみたいです。
やったね。
続いて、以下コマンド実行。
$ rm -f ~/.zcompdump; compinit
zcompdump削除することにより、古い補完情報を削除して、
compinitして、補完情報を再作成してくれるみたいです。
これで、zsh-completions
の設定はひとまず完了です。
補完できるようになりました!!確かに便利ー!
おわりに
とりあえず、zsh導入と入力補完が効くようになりました。
結構、満足していますが、他にも設定を追加したら記事にも追記したいと思います。
参考
https://qiita.com/ayihis@github/items/88f627b2566d6341a741
https://rcmdnk.com/blog/2015/05/15/computer-linux-mac-zsh/
コメント