[Mac] zsh+oh-my-zsh環境にpecoを導入&初期設定を行う
2015/10/10
2025/8/12
こんにちは、okutani(@okutani_t)です。zsh環境にpecoを使うことで、入力したコマンド履歴を超便利にたどることができるようになります。pecoを利用すれば、とても快適なターミナル環境を作ることができるのです。
私はMacBookAirを使い始めてからターミナルをよく立ち上げるようになりましたが、それはこのpecoがあるおかげといっても過言ではないです。
それぐらい便利ですし、導入もかんたんにできるのでターミナルを活用している人にはすごくオススメのツールですね。
まだzshを導入していない方は、下記の記事を参考にしておくとより理解が深まるかと思います。zshと同時に「oh-my-zsh」も入れておくと更に便利です。本記事では話をシンプルにするため、これらの導入方法は簡潔に説明する程度に留めています。
Homebrewでzsh導入&oh-my-zsh初期設定まとめ
また、今回はMac上で作業を行っていますのでご了承ください。では、さっそく導入方法を見ていきましょう。
peco導入
pecoはHomebrewから導入することができます。Homebrewを使うと本当に導入が楽チンで便利ですね。次のコマンド一発で導入できます。
$ brew install peco
これだけでpecoの導入は完了です。
ただ、oh-my-zshを導入していると、今の状態ではpecoは動作しません。なので「~/.zshrc」に以下の記述をおこない、pecoが動作するように設定しておく必要があります。
$ vi ~/.zshrc
function peco-select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(\history -n 1 | \
eval $tac | \
peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history
また、このとき一緒に次のコードを~/.zshrcに記述しておけば、zshのコマンド履歴の数を任意に設定することができます。
# ヒストリ(履歴)を保存、数を増やす
HISTFILE=~/.zsh_history
HISTSIZE=100000
SAVEHIST=100000
esc → ZZで保存し、.zshrcファイルを次のコマンドで再読み込みしましょう。
$ source .zshrc
これで「ctrl」 + 「r」でコマンド履歴の一覧が表示されます。超便利!
使いやすくキーバインドを設定
さらに使いやすくするため、次の手順でキーバインドを変更しておくと便利です。
「~/.peco/config.json」に下記を記述、ページ送りやキャンセルコマンド等のキーバインドを設定することができます。
~/.peco/config.jsonが無い場合は各自作成しておきましょう。
$ mkdir ~/.peco
$ touch ~/.peco/config.json
$ vi ~/.peco/config.json
次のコードをコピペしてあげれば、ページ送りとキャンセルを設定したキーバインドで行えます。
{
"Keymap": {
"M-v": "peco.SelectPreviousPage",
"C-v": "peco.SelectNextPage",
"C-g": "peco.Cancel"
}
}
その他の使い方
コマンドの後にパイプで「peco」と繋いであげると、入力したコマンドをpecoで選択することができます。
$ ls | peco
私はこれの活用方法がよく分かりませんが、何か便利な使い方があればどなたか教えて下さい!
まとめ
Macにzshとpecoを使うことでめちゃくちゃ快適なターミナル環境を構築することができました。Macでターミナルを使っている方はpeco、必須レベルです。ぜひ試してみてください。
また、私はMacのターミナルソフトに「iTerm2」を使っています。画面分割やタブ表示もできて良い感じです。
Macユーザー様の参考になれば幸いです。