最近TLでpercolやpecoが盛り上がっているので試してみました。
追記
lestrratさん、syohexさんからご指摘いただいた通り、そもそもpecoを使いたいだけの場合はGoのインストールは必要ありませんでした。
(percolだとpythonとかの設定が色々と面倒だった、という背景を忘れていました...)
詳細は下記記事を参考にしてみてください。
例えば、pecoをビルドしない
http://qiita.com/lestrrat/items/de8565fe32864f76ac19
pecoの導入
## 例
$ cd
$ mkdir -p local/src
$ cd local/src
$ wget https://github.com/peco/peco/releases/download/v0.1.12/peco_linux_amd64.tar.gz
$ tar -C /home/*****/local -xzf peco_linux_amd64.tar.gz
あとはパスを設定すればOKです。
追記前(残しておきます)
goのインストール
そもそもgoが入ってなかった...ので、ローカルにgoをインストールします。
## おもむろにディレクトリ作成
$ cd
$ mkdir -p local/src
$ cd local/src
$ wget http://golang.org/dl/go1.3.linux-amd64.tar.gz
$ tar -C /home/*****/local -xzf go1.3.linux-amd64.tar.gz
golangの環境設定
パスを設定します。適当に.bashrcとか開いてコピペ。
export GOROOT="$HOME/local/go"
export GOPATH="$HOME/local/mygo"
export PATH="$PATH:$GOPATH/bin:$GOROOT/bin"
## 設定再読み込み
source .bashrc
# 確認
which go
pecoのインストール
goがインストールできたので次はpecoをインストールします。
$ go get github.com/peco/peco/cmd/peco
# 確認
which peco
pecoの設定
こちらの記事を参考に、.bashrcとかに書き込んでいきます。
bashでもpercolをイイ感じに使う方法
http://d.hatena.ne.jp/hirose31/20140612/1402559889
最初なので、コマンド履歴を便利にします。
下記ソースを.bashrcに適当にコピペ。
# settings for peco
_replace_by_history() {
local l=$(HISTTIMEFORMAT= history | tac | sed -e 's/^\s*[0-9]* \+\s\+//' | peco --query "$READLINE_LINE")
READLINE_LINE="$l"
READLINE_POINT=${#l}
}
bind -x '"\C-r": _replace_by_history'
bind '"\C-xr": reverse-search-history'
# 再読み込み
$ source .bashrc
これであとはいつものようにC-rでインクリメンタルサーチすれば
あら不思議、pecoが使えます。
おまけ(vimっぽいキーバインド)
動的にフィルターをかけていって選択するときに、
vimっぽくjとかkでラインを移動できたら便利なので、そのようにキーバインドを変えます。
# おもむろにディレクトリを作る
$ cd
$ mkdir -p .config/peco/
# 移動してvimを開く
$ cd .config/peco
$ vim config.json
下記内容をコピペすればOK。
{
"keymap": {
"C-j": "peco.SelectDown",
"C-k": "peco.SelectUp",
"C-f": "peco.ScrollPageDown",
"C-b": "peco.ScrollPageUp"
}
}
参考サイト
流行りのpecoをcentosにインストールしました
http://blog.10rane.com/installed-the-peco-to-centos/
bashでもpercolをイイ感じに使う方法
http://d.hatena.ne.jp/hirose31/20140612/1402559889
例えば、pecoをビルドしない
http://qiita.com/lestrrat/items/de8565fe32864f76ac19