g ++ bash: aviso: programmable_completion: g ++: loop de repetição possível

2

Quando digito g++ e concluo a guia para a listagem de arquivos, recebo este aviso

   **g++ bash: warning: programmable_completion: g++: possible retry loop**

Eu pesquisei e até agora não houve resultados. Alguém pode ajudar a corrigir esse problema?

A versão do Ubuntu é 14.04.

Conteúdo do meu arquivo .bashrc

# ~/.bashrc: executed by bash(1) for non-login shells. see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) for examples

#If not running interactively, don't do anything

case $- in
*i*) ;;
  *) return;;
 esac

#don't put duplicate lines or lines starting with space in the history.
#See bash(1) for more options

HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it

shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)

HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
#  update the values of LINES and COLUMNS.

shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.

shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)

[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)

if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)

fi

# set a fancy prompt (non-color, unless we know we "want" color)

case "$TERM" in
xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the 
 capability; turned off by default to not distract the user: 
 the focus in a terminal window should be on the output of commands, 
 not on the prompt

 force_color_prompt=yes

 if [ -n "$force_color_prompt" ]; then
   if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
 # We have color support; assume it's compliant with Ecma-48
 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
 # a case would tend to support setf rather than setaf.)

   color_prompt=yes

 else
   color_prompt=
  fi
fi

if [ "$color_prompt" = yes ]; then
  PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir

case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac

# enable color support of ls and also add handy aliases

if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval    "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

if [ -f ~/.local/lib/python2.7/site-packages/powerline/bindings  /bash/powerline.sh ]; then
source ~/.local/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh
fi


# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).

if ! shopt -oq posix; then
 if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
  fi
fi
[ -f ~/.fzf.bash ] && source ~/.fzf.bash

A versão do Ubuntu é 14.04

    
por James K J 02.07.2015 / 04:58

1 resposta

1

Bash código-fonte diz que há muitas tentativas de conclusão .

Manual de referência do bash diz:

It’s possible for shell functions executed as completion handlers to indicate that completion should be retried by returning an exit status of 124. If a shell function returns 124, and changes the compspec associated with the command on which completion is being attempted (supplied as the first argument when the function is executed), programmable completion restarts from the beginning, with an attempt to find a new compspec for that command.

Assim, você pode reproduzir o possível loop de repetição com:

function _retr_comp { complete -F _retr_comp foo; return 124; }
complete -F _retr_comp foo

Digite foo Espaço Guia
Você deve ver foo -bash: warning: programmable_completion: foo: possible retry loop

Tente encontrar todos os return 124 .

Tente também:
g++ Espaço Guia
complete -p g++ # outputs complete -F <FUNCNAME> g++
type <FUNCNAME>
para ver o seu g++ compspec.

Atualizar :
Existe um bug em fzf . Corrigir .

Corrigir. Graças a junegunn .

Solução :

Apenas atualize seu fzf : cd ~/.fzf && git pull && ./install

Reenvie sua ~/.bashrc : source ~/.bashrc

Tipo: g++ espaço guia

    
por 03.07.2015 / 22:18