pecoをCentOS6.5にインストール


pecoというものが便利らしいということで、早速Macにインストールして使っておりました。
友人にも薦めてみたのですが、Linuxで使うにはどうすればいいの?という質問があったのでインストール方法を忘備録的にまとめてみました。

pecoとは

標準入力を受け取り、インクリメンタルな絞り込みができる便利ツールです。
自分は、特にzshのhistoryと連携させて使っております。
他には、gitでpullしたりpushしたりするときにも使っておるのですが、かなり便利です(´ω`)

pecoのGitHubページにデモがありますので、見てみるとイメージが分かりやすいと思います。

https://github.com/peco/peco

gitとの連携に関しては、こちらの記事を見ていただけるといいと思います!(タイトル通り便利革命でした!)
peco と alias -g で git に便利革命おきた

インストール方法

こちらから最新版のファイルをダウンロードします。
今回は、ユーザーディレクトリに「local/src」っていうディレクトリを作ってその中にダウンロードしてみます。

cd
mkdir -p local/src/
cd local/src
wget https://github.com/peco/peco/releases/download/v0.2.9/peco_linux_amd64.tar.gz

次に、ダウンロードしてきたファイルを解凍します。

tar -C ~/local -xzf peco_linux_amd64.tar.gz

「/home/user_dir/local」に解凍されますので、それを「/home/user_dir/local/bin」に移動させちゃいます。

mkdir ~/local/bin
mv ~/local/peco_linux_amd64/peco ~/local/bin/

上記の方法だと、ログインユーザーしかpecoが使えません。
もし、他のユーザーでも使いたい場合は、「/usr/local/bin」ディレクトリに移動すればOKです!
※sudo権限が必要となります。

sudo mv ~/local/peco_linux_amd64/peco /usr/local/bin/

最後に移動したファイルに実行権限を与えます。

chmod 700 ~/local/bin/

これで、pecoのインストールは完了です!

zshのhistoryとpecoを連携させたい場合

こちらを参考に、~/.zshrcに下記を追加すればOK!
oh-my-zsh の環境で、peco-select-history が動かない

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

# ユーザーディレクトリ内にインストールした場合はPATHを設定
PATH=$PATH:~/local/bin/
export PATH=$PATH:~/local/bin/

追加したら、

source ~/.zshrc

を忘れずに!

最後に上記コマンドをまとめたshを書いておきます。

全てのユーザーで使うバージョン

#!/bin/sh

cd
mkdir -p local/src/
mkdir -p local/bin/

cd local/src
wget https://github.com/peco/peco/releases/download/v0.2.9/peco_linux_amd64.tar.gz
tar -C ~/local -xzf peco_linux_amd64.tar.gz
mv ~/local/peco_linux_amd64/peco ~/local/bin/
chmod 700 ~/local/bin/peco

cat <<'EOF' >> ~/.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


PATH=$PATH:~/local/bin/
export PATH=$PATH:~/local/bin/

EOF

ログインユーザーのみで使うバージョン

#!/bin/sh

cd
mkdir -p local/src/
mkdir -p local/bin/

cd local/src
wget https://github.com/peco/peco/releases/download/v0.2.9/peco_linux_amd64.tar.gz
tar -C ~/local -xzf peco_linux_amd64.tar.gz
mv ~/local/peco_linux_amd64/peco ~/local/bin/
chmod 700 ~/local/bin/peco

cat <<'EOF' >> ~/.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

PATH=$PATH:~/local/bin/
export PATH=$PATH:~/local/bin/

EOF

※Vagrant上のCentOS6.5(x86_64)で動作確認を行っております。
※ご使用の際は、自己責任でよろしくお願いいたします。
※おかしい部分等ありましたら、教え下さいませm(_ _)m

参考URL