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


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

## pecoとは

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

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

[https://github.com/peco/peco](https://github.com/peco/peco)


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


## インストール方法
[こちら][4]から最新版のファイルをダウンロードします。
今回は、ユーザーディレクトリに「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 が動かない][3]

	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
* [peco/peco　(pecoのGitHubページ)][5]
* [peco と alias -g で git に便利革命おきた][1]
* [例えば、pecoをビルドしない][2]
* [oh-my-zsh の環境で、peco-select-history が動かない][3]


[1]:http://qiita.com/Kuniwak/items/b711d6c3e402dfd9356b
[2]:http://qiita.com/lestrrat/items/de8565fe32864f76ac19
[3]:http://qiita.com/uchiko/items/f6b1528d7362c9310da0
[4]:https://github.com/peco/peco/releases
[5]:https://github.com/peco/peco