Peco
導入手順
$ wget "https://github.com/peco/peco/releases/download/v0.5.3/peco_linux_386.tar.gz"
$ tar xvzf peco_linux_386.tar.gz
$ cd peco_linux_386/
$ mkdir ~/bin
$ mv peco ~/bin/
$ cd ~/bin
$ chmod +x peco
export PATH=$PATH:${HOME}/bin
peco-select-history() {
declare l=$(HISTTIMEFORMAT= history | sort -k1,1nr | perl -ne 'BEGIN { my @lines = (); } s/^\s*\d+\s*//; $in=$_; if (!(grep {$in eq $_} @lines)) { push(@lines, $in); print $in; }' | peco --query "$READLINE_LINE")
READLINE_LINE="$l"
READLINE_POINT=${#l}
}
bind -x '"\C-r": peco-select-history'
function select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(fc -l -n 1 | eval $tac | peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle -R -c
}
zle -N select-history
bindkey '^r' select-history