-
Notifications
You must be signed in to change notification settings - Fork 127
[BUG] Tab does not trigger completion on first press using coreutils from uutils #549
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Tested on a fresh install of ubuntu 25.10. First Tab does nothing, completion only appears after a subsequent keystroke.
Seems to be caused by coreutils from uutils.
I can make sure:
- I am using the latest version of fzf-tab
- this is the minimal zshrc which can reproduce this bug
- fzf-tab is loaded after
compinit - fzf-tab is loaded after plugins which will wrap Tab, like junegunn/fzf/completion.zsh
- fzf-tab is loaded before zsh-autosuggestions, zsh-syntax-highlighting and fast-syntax-highlighting.
To Reproduce
Steps to reproduce the behavior:
Press tab on Ubuntu 25.10, the first press of tab does not show fzf-tab’s popup. Completion UI appears only after a subsequent keystroke (e.g. second tab or any key).
Expected behavior
Completion appears after tab.
Screenshots
First tab: no completion, cursor shifts down
Second tab (or any keystroke): Completion UI appears, the second keystroke will get captured and appear in the buffer
Environment:
- OS: Ubuntu Desktop 25.10
- zsh version: zsh 5.9 (x86_64-ubuntu-linux-gnu)
Minimal zshrc
autoload -U compinit; compinit
source ~/fzf-tab/fzf-tab.plugin.zshLog
zsh 5.9
fzf-tab: v1.2.0.r7.gfac1451
fzf-tab-debug:typeset:12: no such variable: FZF_DEFAULT_OPTS
/home/user/.fzf/bin/fzf 0.66.0 (8cdfb23d)
+fzf-tab-complete:2> local -i _ftb_continue=1 _ftb_continue_last=0 _ftb_accept=0 ret=0
+fzf-tab-complete:5> echoti civis
+fzf-tab-complete:6> (( _ftb_continue ))
+fzf-tab-complete:7> local _ftb_choices=( ) _ftb_compcap=( ) _ftb_finish=0
+fzf-tab-complete:8> _ftb_continue=0
+fzf-tab-complete:9> local IN_FZF_TAB=1
+fzf-tab-complete:11> zle .fzf-tab-orig-fzf-completion
+-ftb-complete:1> local -Ua _ftb_groups
+-ftb-complete:2> local choice choices _ftb_curcontext continuous_trigger print_query accept_line bs=$'\C-B' nul=$'\C-@'
+-ftb-complete:3> local ret=0
+-ftb-complete:6> (( 0 ))
+-ftb-complete:7> COLUMNS=500 +-ftb-complete:7> _ftb__main_complete
+_ftb__main_complete:1> local IFS=$' \t\n\C-@'
+_ftb__main_complete:2> eval $'local -A _comp_caller_options;\n _comp_caller_options=(${(kv)options[@]});\n setopt localoptions localtraps localpatterns ${_comp_options[@]};\n local IFS=$\' \\t\\r\\n\\0\';\n builtin enable -p \\| \\~ \\( \\? \\* \\[ \\< \\^ \\# 2>&-;\n exec </dev/null;\n trap - ZERR;\n local -a reply;\n local REPLY;\n local REPORTTIME;\n unset REPORTTIME'
+(eval):1> local -A _comp_caller_options
+(eval):2> _comp_caller_options=( posixargzero off autolist on shortrepeat off printexitvalue off kshzerosubscript off histreduceblanks off chaselinks off extendedglob on localloops off histnostore off automenu on globcomplete off unset on listpacked off promptsubst on shwordsplit off pathdirs off kshtypeset off listtypes on warncreateglobal off promptbang off dotglob off braceexpand on listbeep on correctall off privileged off numericglobsort on histverify on trackall on histsubstpattern off globstarshort off cbases off rcquotes off posixaliases off histfindnodups off bashautolist off sharehistory off overstrike off kshautoload off incappendhistory off appendcreate off promptcr on mailwarn off pushdignoredups off interactive on ignoreeof off globsubst off rematchpcre off monitor on histsavebycopy on clobberempty off histbeep on debugbeforecmd on magicequalsubst on rmstarsilent off posixjobs off hashcmds on posixtraps off extendedhistory off notify on kshoptionprint off histexpiredupsfirst on glob on posixcd off braceccl off badpattern on longlistjobs off banghist on dvorak off alwaystoend off hashall on warnnestedvar off globalexport on ksharrays off correct on cdsilent off autonamedirs off histexpand on typesetsilent off rmstarwait off histnofunctions off autoparamslash on trapsasync off sunkeyboardhack off promptsp on histsavenodups off autocd on allexport off posixidentifiers off cshjunkiehistory off autopushd off completeinword off completealiases off aliases on autocontinue off appendhistory on aliasfuncdef off singlelinezle off hashlistall on ignoreclosebraces off recexact off localoptions on interactivecomments on errexit off cshjunkiequotes off markdirs off hashdirs on cdablevars off rcexpandparam off vi off printeightbit off multifuncdef on xtrace on login on cshjunkieloops off histappend on histignorespace on evallineno on shfileexpansion off rcs on functionargzero on errreturn off combiningchars off histignoredups on histfcntllock off beep on autoremoveslash on hup on globdots off checkrunningjobs on autoparamkeys on shnullcmd off multibyte on zle on promptpercent on flowcontrol on continueonerror off incappendhistorytime off autoresume off globassign off caseglob on shortloops on bsdecho off cprecedences off log on transientrprompt off verbose off localpatterns off ignorebraces off pipefail off equals on menucomplete off cshnullglob off casematch on promptvars on histallowclobber off bareglobqual on shinstdin on restricted off pushdminus off nullglob off chasedots off mailwarning off listambiguous on cshnullcmd off bashrematch off octalzeroes off forcefloat off exec on multios on emacs off nomatch off pathscript off localtraps off stdin on onecmd off kshglob off clobber on posixbuiltins off alwayslastprompt on pushdtohome off histignorealldups off hashexecutablesonly off pushdsilent off casepaths off shoptionletters off physical off sourcetrace off typesettounset off histlexwords off bgnice on globalrcs on posixstrings off checkjobs on shglob off singlecommand off listrowsfirst off )
+(eval):3> setopt localoptions localtraps localpatterns bareglobqual extendedglob glob multibyte multifuncdef nullglob rcexpandparam unset NO_allexport NO_aliases NO_cshnullglob NO_cshjunkiequotes NO_errexit NO_errreturn NO_globassign NO_globsubst NO_histsubstpattern NO_ignorebraces NO_ignoreclosebraces NO_kshglob NO_ksharrays NO_kshtypeset NO_markdirs NO_octalzeroes NO_posixbuiltins NO_posixidentifiers NO_shwordsplit NO_shglob NO_typesettounset NO_warnnestedvar NO_warncreateglobal
+(eval):4> local IFS=$' \t\C-M\n\C-@'
+(eval):5> enable -p '|' '~' '(' '?' '*' '[' '<' '^' '#'
+(eval):7> trap - ZERR
+(eval):8> local -a reply
+(eval):9> local REPLY
+(eval):10> local REPORTTIME
+(eval):11> unset REPORTTIME
+_ftb__main_complete:3> local func funcs ret=1 tmp _compskip format nm call match min max i num _completers _completer _completer_num curtag _comp_force_list _matchers _matcher _c_matcher _matcher_num _comp_tags _comp_mesg mesg str context state state_descr line opt_args val_args curcontext='' _last_nmatches=-1 _last_menu_style _def_menu_style _menu_style sel _tags_level=0 _saved_exact='' _saved_lastprompt=yes _saved_list=ambiguous _saved_insert='tab automenu-unambiguous' _saved_colors='' _saved_colors_set=0 _ambiguous_color=''
+_ftb__main_complete:4> local _comp_priv_prefix
+_ftb__main_complete:5> unset _comp_priv_prefix
+_ftb__main_complete:6> local -a precommands
+_ftb__main_complete:7> local -ar builtin_precommands=( - builtin eval exec nocorrect noglob time )
+_ftb__main_complete:8> typeset -U _lastdescr _comp_ignore _comp_colors
+_ftb__main_complete:10> [[ -z '' ]]
+_ftb__main_complete:10> curcontext=:::
+_ftb__main_complete:11> zstyle -s :completion::::: insert-tab tmp
+_ftb__main_complete:11> tmp=yes
+_ftb__main_complete:12> [[ yes = *pending(|[[:blank:]]*) || yes = *pending=(#b)([0-9]##)(|[[:blank:]]*) ]]
+_ftb__main_complete:17> [[ 'tab automenu-unambiguous' = tab* ]]
+_ftb__main_complete:19> [[ yes = (|*[[:blank:]])(yes|true|on|1)(|[[:blank:]]*) ]]
+_ftb__main_complete:21> [[ ::: != :* || -z '' ]]
+_ftb__main_complete:23> return 0
+_ftb__main_complete:311> [[ '' = keep ]]
+_ftb__main_complete:319> (( 0 ))
+_ftb__main_complete:323> unset ZLS_COLORS
+-ftb-complete:8> (( 0 ))
+-ftb-complete:10> emulate -L zsh -o extended_glob
+-ftb-complete:12> local _ftb_query _ftb_complist=( ) _ftb_headers=( ) command opts
+-ftb-complete:13> -ftb-generate-complist
+-ftb-generate-complist:3> local dsuf dpre k _v filepath first_word show_group default_color prefix bs=$'\C-H'
+-ftb-generate-complist:4> local -a list_colors group_colors tcandidates reply match mbegin mend
+-ftb-generate-complist:5> local -i same_word=1 colorful=0
+-ftb-generate-complist:6> local -Ua duplicate_groups=( )
+-ftb-generate-complist:7> local -A word_map=( )
+-ftb-generate-complist:9> (( 0 == 0 ))
+-ftb-generate-complist:9> return
+-ftb-complete:15> -ftb-zstyle -s continuous-trigger continuous_trigger
+-ftb-zstyle:1> zstyle -s :fzf-tab: continuous-trigger continuous_trigger
+-ftb-complete:16> [[ linux-gnu == cygwin ]]
+-ftb-complete:16> continuous_trigger=/
+-ftb-complete:19> case 0 (0)
+-ftb-complete:20> return 1
+fzf-tab-complete:11> ret=1
+fzf-tab-complete:12> (( ! ret && ! _ftb_finish ))
+fzf-tab-complete:16> IN_FZF_TAB=0
+fzf-tab-complete:18> (( _ftb_continue ))
+fzf-tab-complete:6> (( _ftb_continue ))
+fzf-tab-complete:25> echoti cnorm
+fzf-tab-complete:26> zle .redisplay
+fzf-tab-complete:27> (( _ftb_accept ))
+fzf-tab-complete:28> return 1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working