読者です 読者をやめる 読者になる 読者になる

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

percolからpecoへ乗り換え

Mac Linux Cygwin

percolとpeco

percolpythonで書かれたツールで、ターミナルでanythingみたいな絞り込みができる。python2で使えて、python3では普通には対応してない。

pecoはpercolをGo言語で書き直したもの。Linux, Mac, Windows用のバイナリが用意されているので、Go言語のインストールとかしなくても簡単にインストール可能。

pecoのgithub

github.com

これまではpercolを使ってきたが、percolはpythonのバージョンに依存するので、新しいPCやサーバーではpecoを使うことにする。設定や機能はほぼ同じ。強いて言うとpecoはデフォルトでEmacsキーバインドが使えるようになっているのでインストールさえしてしまえばzshとの連携を除いて、細かい設定は必要ない。pecoを使う方が良さそう。

ただし、pecoはCygwinでは使えないので注意。Cygwinではおとなしくpercolを使う。

インストール

Mac

Homebrewで入れるだけ。

$ brew install peco

Linux

バイナリをwgetとかでとってこれば使える。
配布先:Releases · peco/peco · GitHub

64bitのマシンなので、v0.3.5peco_linux_amd64.tar.gzをとってきた。

zshとの連携

percolの時と同じように、zshのcdrとhistory履歴と連携させておく。
参考サイト

pecoを導入してzshのhistoryに使うようにした - さよならインターネット

pecoを使い始めた - $shibayu36->blog;

.zshrcの設定

#----- peco
if which peco &> /dev/null; then
    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

    function peco-cdr () {
        local selected_dir=$(cdr -l | awk '{ print $2 }' | peco)
        if [ -n "$selected_dir" ]; then
            BUFFER="cd ${selected_dir}"
            zle accept-line
        fi
        zle clear-screen
    }
    zle -N peco-cdr
    bindkey '^xb' peco-cdr
fi

C-rで履歴の絞り込み

C-x bでディレクトリ履歴から絞り込んで移動