66
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
66
Help us understand the problem. What are the problem?