diff --git a/shell/key-bindings.zsh b/shell/key-bindings.zsh index 2daa30590a2..cfc60e818e4 100644 --- a/shell/key-bindings.zsh +++ b/shell/key-bindings.zsh @@ -98,15 +98,15 @@ bindkey -M viins '\ec' fzf-cd-widget fzf-history-widget() { local selected num setopt localoptions noglobsubst noposixbuiltins pipefail no_aliases 2> /dev/null - selected=( $(fc -rl 1 | awk '{ cmd=$0; sub(/^[ \t]*[0-9]+\**[ \t]+/, "", cmd); if (!seen[cmd]++) print $0 }' | - FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} ${FZF_DEFAULT_OPTS-} -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-z:ignore ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m" $(__fzfcmd)) ) + selected="$(fc -rl 1 | awk '{ cmd=$0; sub(/^[ \t]*[0-9]+\**[ \t]+/, "", cmd); if (!seen[cmd]++) print $0 }' | + FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} ${FZF_DEFAULT_OPTS-} -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-z:ignore ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m" $(__fzfcmd))" local ret=$? if [ -n "$selected" ]; then - num=$selected[1] + num=$(awk '{print $1}' <<< "$selected") if [[ "$num" =~ ^[0-9]+$ ]]; then zle vi-fetch-history -n $num else # selected is a custom query, not from history - LBUFFER="${selected[@]}" + LBUFFER="$selected" fi fi zle reset-prompt