pecoというものが便利らしいということで、早速Macにインストールして使っておりました。
友人にも薦めてみたのですが、Linuxで使うにはどうすればいいの?という質問があったのでインストール方法を忘備録的にまとめてみました。
pecoとは
標準入力を受け取り、インクリメンタルな絞り込みができる便利ツールです。
自分は、特にzshのhistoryと連携させて使っております。
他には、gitでpullしたりpushしたりするときにも使っておるのですが、かなり便利です(´ω`)
pecoのGitHubページにデモがありますので、見てみるとイメージが分かりやすいと思います。
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