Eu tenho isso na linha de comando:
ln -sf $PWD/wine-
e então pressionei Tabpara concluir o nome do arquivo. Nas versões anteriores do Ubuntu, isso funcionava muito bem para concluir o wine-
nome do arquivo (e como efeito colateral $PWD
seria expandido naquele momento). Mas agora o transforma em
ln -sf \$PWD/wine-
que não é exatamente o que eu quis dizer e não completa nada, pois o arquivo não começa literalmente $
.
Como recupero a conclusão do comportamento menos prejudicial?
set
diz-me estas são minhas configurações atuais:
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
command-line
bash
keturn
fonte
fonte
Respostas:
Descobri que as versões do bash> = 4.2.29 têm uma nova
direxpand
configuração de shopt. (Vejaman docs/bash.1
se você fez check-out de um novo bash ou se vê bash.1 da linha 8951 )Se alguém usar o Quantal Quetzal 12.10 ou se apossar (ou efetuar o check-out e criar) uma nova festança, então:
Dá-me o comportamento que quero, preciso e amo.
Solução alternativa: enquanto isso, Ctrl+ Alt+ em Evez de Tabfaz o que eu quero também. Mas é estranho.
BTW, existem vários threads chamados "questão de expansão variável da guia bash?" no gnu.bash.bug . Ao lê-los, encontrei as informações aqui.
fonte
4.4.19
no Ubuntu 18.04 e ele simplesmente funciona. Não tenho certeza quando isso mudou.procure
_filedir()
no script bash_completion de nível superior e altere a linhapara
fonte
compopt: noquote: invalid option name
Para aqueles (como eu) com 12.04 pode usar ~ + em vez de $ PWD ...
por exemplo :
fonte
Mesmo com o bash atualizado, eu estava descobrindo que
$
ainda é escapado.bash-completion (1:2.1-3.fc20)
pacote/etc/bashrc
de~/.bashrc
parecia para corrigi-lo.Eu suspeito que agora estou perdendo alguns recursos que normalmente estou acostumado, mas ainda não percebi.
Alternativa (pelo menos para o Fedora 26), adicione
export BASH_COMPLETION_VERSINFO=0
antes da fonte/etc/bashrc
. Isso faz com que o script problemático pense que já foi originado.fonte
Encontrei o mesmo problema com o Bash no Cygwin. Corrigi o meu problema definindo a seguinte opção.
http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
fonte
Desativar a opção de shell 'complete_fullquote' faz o trabalho:
fonte
Isso o corrigiu para mim, e também removeu muitas opções de conclusão "inteligentes" que eu encontrei no caminho por não concluir os arquivos que eu sei que existem porque a coisa estúpida pensa que eu não os quero como argumentos para um determinado comando. ARRRGH
fonte