Meta- * / “insert-completions” Falha por conclusões definidas por “complete -F…”

0

Eu escrevi uma função de conclusão simples que está fazendo o que eu quero com uma exceção. Suas conclusões não são expandidas quando eu digito M- * ("insert-completions") como as conclusões de arquivo são.

Esta é uma limitação inerente ou algo que eu posso ativar?

Eu apenas tentei isso em um computador diferente (com uma versão ligeiramente diferente do BASH) e funcionou lá.

  • Works: 3.2.25 (1) -release (Linux, CentOS 5.5)
  • Não-Go: 3.2.48 (1) -release (MacOS X 10.6.7)

Atualização : Estou procurando uma hipótese que possa explicar a discrepância entre esses dois sistemas.

    
por Randall Schulz 06.05.2011 / 21:16

1 resposta

0

Acabei de adicionar o seguinte código desta página da web ao meu .bash_profile :

_foo() 
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    opts="--help --verbose --version"

    if [[ ${cur} == -* ]] ; then
        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
        return 0
    fi
}
complete -F _foo foo

foo -- é expandido para foo --help --verbose --version ao pressionar Meta-* no Terminal.app.

$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.

Portanto: não consigo reproduzir com a mesma versão de bash no Mac OS X 10.6.7. Você alterou seu ambiente após a instalação? instalando coisas de terceiros via Macports / Fink / Homebrew? Tente usar uma nova configuração do Terminal criando uma nova conta de usuário.

Verifique se você está realmente pressionando Meta - é configurável no Terminal. Se você não definir essa opção, não haverá Meta :

FazoutrosatalhosMetadereadlinework?

Seissonãofuncionar:Jáqueo10.7.0Lionaindanãoestácomercialmentedisponível,sugiroquevocêesperequeosoftwaredepré-lançamentotenhabugseosinformecorretamente. site .

    
por 06.05.2011 / 21:45

Tags