Il completamento della scheda Bash si espande "~" in "/ home / ___" quando non lo faceva prima


13

In precedenza, se avessi digitato ~/biTab, prima, sarebbe diventato ~/bin. Tuttavia, oggi ha iniziato a trasformarsi ~/biTabin /home/username/bin.

Preferirei averlo nel primo caso, ma non sono sicuro di cosa sia successo ... Ho aggiunto uno script per modificare il mio completamento bash ma l'ho rimosso dal mio ~./bashrce riavviato il server.

Qualcuno sa cosa potrebbe causare ciò? O come lo cambierei di nuovo?

EDIT Quindi ho scoperto cosa potrebbe causare questo ... ha a che fare con /etc/bash_completioncose del genere. Quando lo faccio bind -v, mostra che l'espansione tilde è disattivata.

Quindi penso che se lo modifico (un po 'come un hack), sparirà. Ma questo non soddisfa davvero nulla: come è potuto accadere questo cambiamento in primo luogo? Non ho mai eseguito nulla di sudosimile e, dopo diversi arresti e riavvii, questo comportamento persiste.

Risposte:


8

Non menzioni la distribuzione che stai utilizzando (includi tali informazioni nella tua domanda), ma ho riscontrato un comportamento simile dopo aver eseguito gli aggiornamenti sui miei sistemi.

La mia ipotesi migliore è quando hai eseguito un aggiornamento del sistema, o se è stato eseguito automaticamente, è stato aggiornato il pacchetto "bash-completamento" che ha aggiunto questo comportamento. Nei derivati ​​Red Hat, è possibile trovare la documentazione del pacchetto in /usr/share/doc/PACKAGENAME. Nel mio /usr/share/doc/bash-completion-1.3/CHANGES, le nuove modifiche sono elencate tramite un formato del registro delle modifiche.

Invece di modificare /etc/bash_completion, che potrebbe potenzialmente essere sovrascritto al prossimo aggiornamento del pacchetto, è possibile creare ~/.inputrcper disabilitare l'espansione tilde. Ho confermato che bash_completion-1.3.6 onorerà questo sulla mia casella Fedora 16.

set expand-tilde off

MODIFICARE

Il tuo chilometraggio può variare con ~/.inputrc. Bash ha funzioni che possono sovrascrivere quel comportamento a seconda di ciò che si tenta di completare (ad esempio un programma contro un file o una directory). Questa discussione su Super User SE affronta una domanda simile durante il completamento automatico di un vimcomando. In questo caso, il poster originale ha risolto il suo problema aggiungendo una funzione personalizzata alla sua ~/.bashrc.


1
L'ultimo bit dipende anche dalla distribuzione. Alcune distro (ad esempio Gentoo) fanno effettivamente la cosa giusta e non sovrascrivono i file /etcse sono stati modificati.
njsg,

1
Anche i derivati ​​Red Hat lo fanno. Il file del xxxfile di configurazione sostitutivo viene quindi chiamato xxx.rpmnewse le modifiche alla configurazione non sono critiche; se le modifiche alla configurazione sono davvero necessarie, l'originale viene rinominato xxx.rpmsaveed xxxè il file dal pacchetto.
vonbrand,

expand-tilde non funziona, ho finito per eliminare il codice che ha fatto l'espansione dal mio computer. Probabilmente si interromperà sugli aggiornamenti del sistema ma: |
Justin L.,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.