A conclusão da tabulação faz com que os cifrões sejam escapados [fechados]

2

Usando o Ubuntu 12.04. Quando estou digitando um caminho no terminal que começa com uma referência de variável env , clico na guia para concluir uma palavra e ela escapa da $ na referência da variável env . Como resultado, tenho que continuar voltando para o início da linha e removendo a barra invertida para que eu possa continuar navegando em uma árvore.

E.G.

Antes da guia: user@test:~$ $HOME/Docum

Após a aba: user@test:~$ $HOME/Documents/

Meu $ HOME / .bashrc tem o material "bash_completion" ativado.

    
por David M. Karr 23.05.2012 / 22:35

2 respostas

1

É algo com a versão bash que vem com o Ubuntu 12.04.

Consegui compilar o bash a partir do código-fonte para obter minha versão bash até 4.2.37, o que resolveu o problema.

    
por user96328 13.10.2012 / 01:12
0

Você mencionou nos comentários que seu problema real não estava com '$ HOME'. Isso é muito importante, já que é importante se é uma variável de ambiente ou não.

O Bash irá completar as possíveis variáveis de ambiente primeiro se você começou com um sinal de dólar, finalmente seguido pela conclusão do nome do arquivo. Então, se não conseguir encontrar uma variável para você, ela poderia ter encontrado um nome de arquivo, caso em que ele escapará do cifrão com uma barra invertida, já que é um caractere especial.

Se você iniciou seu comando com um programa seguido por algumas variáveis, a conclusão pode ser entregue para a conclusão programável, o que também poderia causar isso. Por exemplo, digitando gzip $ HOME / seguido por guia irá inserir uma barra invertida. Os arquivos que manipulam a conclusão programável são de propriedade do pacote 'bash-completion', então ou você pode desinstalar esse pacote (eu não tenho instalado), ou você pode convencê-los de que é um bug. Mantenedores: link

Update: no Arch Linux, experimentei a versão 2.0 e que funciona como esperado para ls $HO<TAB> , mas não para ls $HOME/<TAB> , então acho que eles ainda não solucionaram esse bug (o Ubuntu usa a versão 1.3). Você pode tentar instalar manualmente a versão 2.0, mas observe que ela não funciona completamente. (Como o relatório de bug também menciona que poderia ser bash, estou usando a versão 4.2.37 ao invés de 4.2.24)

    
por steabert 24.08.2012 / 20:50