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 が使用できるようになった。