Zsh
Peco

zsh + peco-select-histroyで未入力状態からCtrl-rを押してもpecoを起動できるようにする

More than 3 years have passed since last update.

巷にあるpeco-select-historyだと未入力状態からCtrl-rを押してもpecoが起動しなくてイラつくので、未入力状態の場合にpecoの引数を変えることでhistory -n 1の順で候補が表示されるようにする。

function peco-select-history() {

local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
if [ -n "$LBUFFER" ]; then
BUFFER=$(history -n 1 | \
eval $tac | \
peco --query "$LBUFFER")
else
BUFFER=$(history -n 1 | \
eval $tac | \
peco)
fi
CURSOR=$#BUFFER
zle clear-screen
}

最初は--query "$LBUFFER"を変数化しようと思ったけど、うまくいかなかったのでこうなってしまった。

https://gist.github.com/jemiam/5178426e980c2647502c

追記: コメントにある通り、再インストールしたらpeco --query ""が動くようになりました。このスクリプトは不要です。