Edited at

oh-my-zsh の環境で、peco-select-history が動かない

More than 5 years have passed since last update.

Pecoを導入してzshのhistoryに使うようにした

http://blog.kenjiskywalker.org/blog/2014/06/12/peco/

こちらの記事などで紹介されている peco-select-history が、

oh-my-zsh を使っている環境下だと動かなかった。

原因は、history -n 1 の部分で、以下のようなエラーが出るため。

$ history -n 1

fc: event not found: -n

oh-my-zsh の設定で history コマンドが fc コマンドに alias 設定されているらしい。

https://github.com/robbyrussell/oh-my-zsh/issues/739

以下のように、historyの前にバックスラッシュを追記した。

(@syohexさんと@hisaichi5518さんにこの方法を教えていただきました。ありがとうございます!)


~/.zshrc

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

これで、無事に peco-select-history が使用できるようになった。