vdeep logo

okutaniの技術とか雑記とかのBLOG.

[Mac] zsh+oh-my-zsh環境にpecoを導入&初期設定を行う

2015/10/10

2025/8/12

https://res.cloudinary.com/vdeep/image/upload/v1754972967/articles/mac-peco-580x359_zy62b1.png

こんにちは、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」でコマンド履歴の一覧が表示されます。超便利!

https://res.cloudinary.com/vdeep/image/upload/v1754973127/articles/peco_xoznzq.gif

使いやすくキーバインドを設定

さらに使いやすくするため、次の手順でキーバインドを変更しておくと便利です。

「~/.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

https://res.cloudinary.com/vdeep/image/upload/v1754973155/articles/peco2_g5qxmz.gif

私はこれの活用方法がよく分かりませんが、何か便利な使い方があればどなたか教えて下さい!

まとめ

Macにzshとpecoを使うことでめちゃくちゃ快適なターミナル環境を構築することができました。Macでターミナルを使っている方はpeco、必須レベルです。ぜひ試してみてください。

また、私はMacのターミナルソフトに「iTerm2」を使っています。画面分割やタブ表示もできて良い感じです。

iTerm2の導入方法&初期設定や使い方まとめ

Macユーザー様の参考になれば幸いです。