diff --git a/shell/completion.bash b/shell/completion.bash index a34e327..360a646 100644 --- a/shell/completion.bash +++ b/shell/completion.bash @@ -170,7 +170,7 @@ __fzf_generic_path_completion() { COMPREPLY=() trigger=${FZF_COMPLETION_TRIGGER-'**'} cur="${COMP_WORDS[COMP_CWORD]}" - if [[ "$cur" == *"$trigger" ]]; then + if [[ "$cur" == *"$trigger" ]] && [[ $cur != *'$('* ]] && [[ $cur != *'<('* ]] && [[ $cur != *'`'* ]]; then base=${cur:0:${#cur}-${#trigger}} eval "base=$base" @@ -235,7 +235,7 @@ _fzf_complete() { cmd="${COMP_WORDS[0]//[^A-Za-z0-9_=]/_}" trigger=${FZF_COMPLETION_TRIGGER-'**'} cur="${COMP_WORDS[COMP_CWORD]}" - if [[ "$cur" == *"$trigger" ]]; then + if [[ "$cur" == *"$trigger" ]] && [[ $cur != *'$('* ]] && [[ $cur != *'<('* ]] && [[ $cur != *'`'* ]]; then cur=${cur:0:${#cur}-${#trigger}} selected=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-} $str_arg" __fzf_comprun "${rest[0]}" "${args[@]}" -q "$cur" | $post | tr '\n' ' ') diff --git a/shell/completion.zsh b/shell/completion.zsh index ec2dfde..fe62b9a 100644 --- a/shell/completion.zsh +++ b/shell/completion.zsh @@ -137,6 +137,9 @@ __fzf_generic_path_completion() { tail=$6 setopt localoptions nonomatch + if [[ $base = *'$('* ]] || [[ $base = *'<('* ]] || [[ $base = *'`'* ]]; then + return + fi eval "base=$base" [[ $base = *"/"* ]] && dir="$base" while [ 1 ]; do @@ -304,6 +307,9 @@ fzf-completion() { d_cmds=(${=FZF_COMPLETION_DIR_COMMANDS:-cd pushd rmdir}) [ -z "$trigger" ] && prefix=${tokens[-1]} || prefix=${tokens[-1]:0:-${#trigger}} + if [[ $prefix = *'$('* ]] || [[ $prefix = *'<('* ]] || [[ $prefix = *'`'* ]]; then + return + fi [ -n "${tokens[-1]}" ] && lbuf=${lbuf:0:-${#tokens[-1]}} if eval "type _fzf_complete_${cmd} > /dev/null"; then