パルカワ2

PerlとRubyとイチャラブ

oh-my-zsh + peco + peco-function-list

ちょっと前にpercolからpecoに乗り換えた。
実際に速度測ったわけではないけど、percolと比べて早くなった気がする。
https://github.com/peco/peco

そんで、percolの時からだけど、peco-hogehogeみたいなfunction作ってkey-bind設定してたけど、多くなってくると記憶の容量が少ない僕は全てを覚えてられないので、pecoに関するfunctionを一覧で表示して、pecoで選択出来るようにすれば便利なんじゃねと思って、peco-function-listというの作ってみた。

f:id:hisaichi5518:20170509101542g:plain

# .zsh/peco-function-list.zsh
function peco-function-list () {
    local selected=$(functions | grep "^.*\ ()\ {" | sed -e "s| () {||" | grep peco- | grep -v function-list | peco --query "$LBUFFER")
    if [ -n "$selected" ]; then
        ${selected}
    fi
}
zle -N peco-function-list
bindkey '^p' peco-function-list

僕はoh-my-zshというのを使っていて、~/.zsh以下の*.zshを全部読み込むように設定してある。なので、.zsh/peco-functions.zsh というファイルでpeco用の色んなfunctionが定義されている。もっと良いやり方ありそう。