interprism's blog

インタープリズム株式会社の開発者ブログです。

peco+zshでターミナルの入力履歴の閲覧を楽にする

この投稿は インタープリズム的「俺達私達の進捗を上げる25個前後のTips」 Advent Calendar 2015 - Qiitaの12日目 の記事です。

こんにちは。suganoです。 zshのhistoryコマンド(Ctrl+r)をコマンドの出力結果をインクリメントサーチができるpecoを導入することで便利になったよという話です。 自分が書いたAnsibleでmacの開発環境を構築してみたと同様にMacでの話になっております。 (これまた知り合いから教えてもらったネタです・・・)

導入方法

まずzshとpecoをインストールします。 zsh自体はMacに標準で入っておりますが、最新のものにするためインストールします。

brew install zsh
brew install peco

Homebrewでインストールしたzsh/usr/local/bin/zshに格納されるので、/etc/shellsに追記します。 追記したらログインシェルを変更します。

chsh -s /usr/local/bin/zsh

zshの設定がよくわからんという人は(自分もそうですが・・・)oh-my-zshを入れておくと便利です。 以下のコマンドでインストール

curl -L http://install.ohmyz.sh | sh

再起動するとこんな感じに f:id:interprism:20151130235459p:plain

最後に.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

ターミナルを再起動してCtrl+rを叩くと

f:id:interprism:20151130224135g:plain

あとこんなこともできます f:id:interprism:20151201000606g:plain 以外とgrep使うより便利じゃね?と思ったり。

今回はコマンドの履歴を検索できるようにしましたが、色々と記事をみると便利な使い方をしてる方々がいるので参考にしてみたいと思います。

参考記事

ターミナルのコマンド履歴入力がスーパー楽になるzsh + oh-my-zsh + pecoの導入手順メモ。

oh-my-zsh の環境で、peco-select-history が動かない

インタープリズム的「俺達私達の進捗を上げる25個前後のTips」 Advent Calendar 2015 - Qiita13日目の記事

インタープリズムのページ

PAGE TOP