diff --git a/README.md b/README.md index 13152b4..0157af0 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ plugins=(… zsh-fzf-history-search) | `ZSH_FZF_HISTORY_SEARCH_BIND` | Keybind to trigger fzf reverse search (default: `'^r'`) | | `ZSH_FZF_HISTORY_SEARCH_FZF_ARGS` | Arguments for `fzf` (might be updated, not recommended to override) (default: `'+s +m -x -e'`) | | `ZSH_FZF_HISTORY_SEARCH_FZF_EXTRA_ARGS` | Extra arguments for `fzf` (default: `''`) | +| `ZSH_FZF_HISTORY_SEARCH_END_OF_LINE` | Put the cursor on at the end of the line after completion, `empty=false` (default: `''`) | ## TODO diff --git a/zsh-fzf-history-search.zsh b/zsh-fzf-history-search.zsh index 11dc7aa..50876ff 100644 --- a/zsh-fzf-history-search.zsh +++ b/zsh-fzf-history-search.zsh @@ -13,6 +13,10 @@ typeset -g ZSH_FZF_HISTORY_SEARCH_FZF_ARGS='+s +m -x -e' (( ! ${+ZSH_FZF_HISTORY_SEARCH_FZF_EXTRA_ARGS} )) && typeset -g ZSH_FZF_HISTORY_SEARCH_FZF_EXTRA_ARGS='' +# Cursor to end-of-line +(( ! ${+ZSH_FZF_HISTORY_SEARCH_END_OF_LINE} )) && +typeset -g ZSH_FZF_HISTORY_SEARCH_END_OF_LINE='' + fzf_history_search() { setopt extendedglob candidates=(${(f)"$(fc -li -1 0 | fzf $(echo $ZSH_FZF_HISTORY_SEARCH_FZF_ARGS) $(echo $ZSH_FZF_HISTORY_SEARCH_FZF_EXTRA_ARGS) -q "$BUFFER")"}) @@ -22,6 +26,9 @@ fzf_history_search() { BUFFER="${BUFFER[@]/(#b)(?)\\n/$match[1] }" zle vi-fetch-history -n $BUFFER + if [ -n "${ZSH_FZF_HISTORY_SEARCH_END_OF_LINE}" ]; then + zle end-of-line + fi fi zle reset-prompt return $ret