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でコマンドの履歴も同じようにインクリメンタルサーチしてくれます。