iTerm + zsh + prezto + pecoの組合せ

Macの調子が悪くて再インストール。最近はOneDriveやGoogle Drive、GitHubにデータがあるので再インストールコストがかなり下がっている。 macOS Mojave 10.14.3を入れ直し。 必要アプリは古くて新しいMacがやってきたに書いてある感じのApplicationを入れたらOK この記事は2018年11月のApplicationなので3ヶ月たってもあまり変更無かった。 今回はTerminal周りの環境を整えてみる。最近はiTerm + zsh + preztoの組合せで使っていたのでその環境で作ってみる。参考記事はMacの開発環境をzshで良い感じにするあたりにまんま書かれています。

prezto

preztoとは公式サイトによると
Prezto is the configuration framework for Zsh; it enriches the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes.
だそうな^^;;

必要アプリのインストール

$ brew install zsh git

preztoインストール

$ zsh
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
prezto設定
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

shell追加

/usr/local/bin/zshを/etc/shellsに追加しておきます。

shell 変更

$ chsh -s /usr/local/bin/zsh
preztoにはいろいろなThemeがありますが私はデフォルトを利用しています。時間を見つけて色々見た目の変更はしてみたい。

zsh-completions

zsh-completions はzshの補完機能を強化してくれるツール。すぐに引数忘れる私には有り難いツール^^;;

Install

$ brew install zsh-completions

設定

$ echo "fpath=(path/to/zsh-completions/src $fpath)" >> ~/.zshrc
$ rm -f ~/.zcompdump; compinit

確認

引数が補完されるかテスト

その他

ついでにaws cliの補完機能も有効化します。
echo "source /usr/local/share/zsh/site-functions/aws_zsh_completer.sh" >> ~/.zshrc
これもついでにテスト

peco

pecoは標準出力をインクリメンタルサーチしてくれるコマンド。 インクリメンタルサーチなので1文字ごとにサーチしてくれるのは良い感じ。

Install

$ brew install peco
設定 ~/.zshrcに追加
function peco-history-selection() {
    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-history-selection
bindkey '^R' peco-history-selection
これでControl + rでコマンドの履歴も同じようにインクリメンタルサーチしてくれます。

Mac

Posted by WATARU YONESU