(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

peco 使ったら今までやりたいと思っていた anything like なディレクトリ移動が出来たので嬉しい。

朝からこんな記事を見かけたのでちょっと読んだ。

僕は普段、 Xubuntu しか使っていないし最近は日本語ファイルとかディレクトリとか作らないからあんまり嬉しくないんだけど、 peco というツールの存在を知れたのが良かった。
早速ざっくり install した。

go lang を入れるのは簡単だったけど、 $GOPATH をどこにするか少しだけ悩んで結局 $HOME/go にした。

あとは少し以下の設定を足したら結構いい感じになったので僕は満足している。

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-cd () {
    local selected_dir=$(find ~/ -type d | peco)
    if [ -n "$selected_dir" ]; then
        BUFFER="cd ${selected_dir}"
        zle accept-line
    fi
    zle clear-screen
}
zle -N peco-cd
bindkey '^x^f' peco-cd

peco-cd は完全に参考にした他のサイトの劣化になっているので、ちょっと今後改善する必要あり。元々 cdr とか z とか使っていた人は結構楽に移行できるらしい。もう少しコード読んで調べる。

追記

peco-cd はこの記事スクリプトをそのまんま percol から peco に書き換えるだけで割といい感じになったのでいい感じ。