牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

流行ってるの ZAW じゃなくて Percol だったっぽいので乗り換えてみるメモ

あえて peco じゃなくて percol 使う。

インストール

$ sudo pip install percol

755 にしろと言われる

動くか試す
$ percol /var/log/syslog
$ ps aux | percol

.zshrc に設定追加

ヒストリーは公式ママ
最近使ったディレクトリは下記リンク

function exists { which $1 &> /dev/null }
if exists percol; then
    # history
    function percol_select_history() {
        local tac
        exists gtac && tac="gtac" || { exists tac && tac="tac" || { tac="tail -r" } }
        BUFFER=$(fc -l -n 1 | eval $tac | percol --query "$LBUFFER")
        CURSOR=$#BUFFER         # move cursor
        zle -R -c               # refresh
    }

    zle -N percol_select_history
    bindkey '^R' percol_select_history

    # cdr
    autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
    add-zsh-hook chpwd chpwd_recent_dirs
    zstyle ':chpwd:*' recent-dirs-max 500 # cdrの履歴を保存する個数
    zstyle ':chpwd:*' recent-dirs-default yes
    zstyle ':completion:*' recent-dirs-insert both
    # http://shibayu36.hatenablog.com/entry/2013/10/07/185048
    function percol-cdr () {
        local selected_dir=$(cdr -l | awk '{ print $2 }' | percol --query "$LBUFFER")
        if [ -n "$selected_dir" ]; then
            BUFFER="cd ${selected_dir}"
            zle accept-line
        fi
        zle clear-screen
    }
    zle -N percol-cdr
    bindkey '^]' percol-cdr
fi

Configuration

更新の設定をプロンプトだけ変更してみた
~/.percol.d/rc.py

percol.view.PROMPT = ur"<cyan>>>> </cyan> %q"  # noqa

# Emacs like
percol.import_keymap({  # noqa
    "C-h": lambda percol: percol.command.delete_backward_char(),
    "C-d": lambda percol: percol.command.delete_forward_char(),
    "C-k": lambda percol: percol.command.kill_end_of_line(),
    "C-y": lambda percol: percol.command.yank(),
    "C-t": lambda percol: percol.command.transpose_chars(),
    "C-a": lambda percol: percol.command.beginning_of_line(),
    "C-e": lambda percol: percol.command.end_of_line(),
    "C-b": lambda percol: percol.command.backward_char(),
    "C-f": lambda percol: percol.command.forward_char(),
    "M-f": lambda percol: percol.command.forward_word(),
    "M-b": lambda percol: percol.command.backward_word(),
    "M-d": lambda percol: percol.command.delete_forward_word(),
    "M-h": lambda percol: percol.command.delete_backward_word(),
    "C-n": lambda percol: percol.command.select_next(),
    "C-p": lambda percol: percol.command.select_previous(),
    "C-v": lambda percol: percol.command.select_next_page(),
    "M-v": lambda percol: percol.command.select_previous_page(),
    "M-<": lambda percol: percol.command.select_top(),
    "M->": lambda percol: percol.command.select_bottom(),
    "C-m": lambda percol: percol.finish(),
    "C-j": lambda percol: percol.finish(),
    "C-g": lambda percol: percol.cancel(),
})