apt-get install fzf

bashrc

[ -f ~/.fzf.bash ] && source ~/.fzf.bash
 
function fzf_command_searcher() {
    local cmd
    cmd=$(history | tac | fzf | awk '{for(i=4; i<=NF; i++) printf "%s ", $i; print ""}')
    if [[ -n $cmd ]]; then
        echo "$cmd" | xclip -selection clipboard
        READLINE_LINE="$cmd"
        READLINE_POINT=${#READLINE_LINE}
    fi  
}
 
bind -x '"\C-r": fzf_command_searcher'

zshrc

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
 
function fzf_command_searcher() {
    local cmd
    cmd=$(fc -l -n 1 | tac | fzf | awk '{for(i=1; i<=NF; i++) printf "%s ", $i; print ""}')
    if [[ -n $cmd ]]; then
        echo "$cmd" | xclip -selection clipboard
        LBUFFER="$cmd"
    fi  
}
 
zle -N fzf_command_searcher
bindkey "^R" fzf_command_searcher

동작이 이상할 때 아래 i 부분 수정

cmd=$(history | tac | fzf | awk '{for(i=4; i<=NF; i++) printf "%s ", $i; print ""}')