autocomplete os diretórios nomeados

2

O preenchimento automático de um diretório nomeado parece não funcionar antes de ser usado pela primeira vez, conforme demonstrado pela seguinte sessão:

% setfoo() { foo=/etc; }
% setfoo

% cd ~fo<Tab> # doesn't autocomplete ~foo
% ls ~foo # this works
% cd ~fo<Tab> # now it does autocomplete ~foo

Existe uma maneira de ativar o preenchimento automático desde o início?

Notas:

  • isso funciona como esperado se eu definir foo diretamente na linha de comando, não dentro de uma função
  • setfoo() { foo=/etc; true ~foo; } funciona também, mas estou procurando uma solução mais adequada
por Roman Cheplyaka 29.04.2014 / 09:51

1 resposta

4

Você pode usar hash -d para definir diretórios nomeados explicitamente:

hash -d foo=/etc

Nota: isso não define o parâmetro correspondente:

% hash -d foo=/etc
% echo $foo

% echo ~foo
/etc

hash -d sem nenhum argumento imprimirá a tabela hash denominada directiories.

    
por 29.04.2014 / 13:06