シェルをbashからzshに変更する
1. zsh 導入
2. sh-completion 補完拡張
3. prezto コンフィグレーションフレームワーク
4. peco コマンド履歴検索
zsh導入手順
1.zshインストール
$ brew install zsh
2.補完の拡張「zsh-completion」のインストール
zsh-completion
をインストールする
$ brew install zsh-completion
zsh-completion
を有効にする
$ vi .zshrc
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
autoload -Uz compinit
compinit
fi
zcompdump
を再構築する
zcompdump
には、コマンドと関数が登録されている
$ rm -f ~/.zcompdump
$ compinit
[zsh compinit: insecure directories]が表示された場合
$ chmod go-w ‘/usr/local/share’
3.コンフィグレーションフレームワーク「prezto」のインストール
zsh
を起動する
$ zsh
prezto
のリポジトリをクローンする
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
提供されている Zsh 設定ファイルをコピーして、新しい Zsh 設定を作成
.zshrc
があるとエラーになるため、.zshrc
を別名にする
/Users/{user}/.zshrc: File exists
$ mv .zshrc .zshrc_temp
prezto
が設定された.zshrc
を作成する
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
コピーした.zshrc
を追記する
$ cat .zshrc_temp >> .zshrc
4.コマンド履歴検索「peco」のインストール
peco
をインストールする
$ brew install peco
.zshrc
に以下を追加する
$ vi .zshrc
peco-select-history() {
BUFFER=$(history 1 | sort -k1,1nr | perl -ne 'BEGIN { my @lines = (); } s/^\s*\d+\*?\s*//; $in=$_; if (!(grep {$in eq $_} @lines)) { push(@lines, $in); print $in; }' | peco --query "$LBUFFER")
CURSOR=${#BUFFER}
zle reset-prompt
}
zle -N peco-select-history
bindkey '^r' peco-select-history
5.ログイン時のシェル変更
/etc/shells
の最後の行にパスを追加する
$ sudo vi /etc/shells
/usr/local/bin/zsh
ログイン時のシェルを変更する
$ chsh -s /usr/local/bin/zsh
Changing shell for <user>.
Password for <user>:
細かい設定は、おいおい。。やっていきます!