Bash Completamento automatico Aggiunge barra finale dopo il nome file


9

Di recente ho aggiornato il mio sistema da Etch a Lenny. Ora, quando utilizzo il completamento automatico, i nomi dei file (non le directory) vengono visualizzati con una barra finale sulla riga di comando.

Sembra essere correlato a più comandi (tutti?). Ne ho provati alcuni:

aj@mmdev0:~/loadtest$ vi pyloadtools3.py/
aj@mmdev0:~/loadtest$ cat pyloadtools3.py/
aj@mmdev0:~/loadtest$ file pyloadtools3.py/
aj@mmdev0:~/loadtest$ ls -al pyloadtools3.py/

Come posso risolvere questo problema?


Lo fa indipendentemente dal comando all'inizio della riga o solo per alcuni particolari? Ad esempio: cat filen[TAB]vs.somecommand filen[TAB]
In pausa fino a nuovo avviso.

3
Potrebbe essere un problema con lo script / etc / bash_completion. Prova a reinstallare il pacchetto bash_completion. Ha ancora il problema?
W_Whalley,

1
@W_Whalley - ecco. Si prega di inviare questa come risposta in modo che io possa premiarti con la generosità. Grazie!
AJ.

1
@W_Whalley - Cordiali saluti, la taglia termina in 1 giorno. Pubblica la tua risposta di seguito in modo che io possa darti credito. Grazie ancora per il vostro aiuto!
AJ.

2
Sto riscontrando questo problema su Mac OS con GNU bash 3.2.57. Succede solo a volte . Ad esempio, ho 5 finestre terminali aperte che eseguono bash in questo momento, e solo uno di loro lo sta facendo. Penso che @scy abbia ragione riguardo al fatto che si tratta di readline, ma l' mark-directoriesessere onnon dovrebbe essere un problema. Immagino di aver colpito un randagio CTRL-somethinga un certo punto e di aver rotto questo particolare terminale.
Christopher Schultz,

Risposte:


4

Questi sono i file e i frammenti di file che ho trovato interessanti per questo problema. Nota che sto eseguendo Ubuntu 10.04

Potresti essere in grado di capire qual è il problema dai miei file di configurazione. Altrimenti, potresti considerare di pubblicare la tua configurazione corrispondente.

ultima parte di ~ / .bashrc

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

40% in basso nella pagina in /etc/bash.bashrc (hai anche commentato questa parte?)

# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

Ho trovato questi articoli di interesse:

http://www.linux.com/archive/feed/54005

http://www.debian-administration.org/articles/316

Dovrò fare qualche ricerca in più ... ma questo è quello che ho ottenuto finora.

prova a eseguirlo nel terminale e poi vedi se hai ancora il problema:

. /etc/bash_completion

Modifica: trovato che il completamento della scheda è gestito da / etc / bash_completion. Molti comandi di Linux hanno anche le proprie impostazioni di completamento della scheda nella directory /etc/bash_completion.d/.

Anche altre persone hanno avuto questo problema:

http://forums.gentoo.org/viewtopic-t-751913-start-0.html

https://bugzilla.redhat.com/show_bug.cgi?id=583919

Questo potrebbe essere un bug nella tua versione di bash. Quindi ora la vera domanda è ... che versione di bash hai?

Solo così la soluzione è facile da trovare per gli altri che hanno questo problema:

"Potrebbe essere un problema con lo script / etc / bash_completion. Provare a reinstallare il pacchetto bash_completion. Ha ancora il problema? - W_Whalley"

-vedi commenti


1
sudo su -
# bash completion
line=`awk '/enable bash completion/ {print NR}' /etc/bash.bashrc`
sed -i.backup "$((line+1)),$((line+3))s/^#//g" /etc/bash.bashrc


# bash completion fork: http://code.google.com/p/bash-completion-lib/
apt-get install -y bash-completion-lib

0

Ciò non è affatto correlato al completamento programmabile. Invece, è una semplice impostazione readline . Prova ad aggiungere

set mark-directories Off

al tuo ~/.inputrc.

(A proposito, l'ho trovato dopo aver guardato dentro man bashper due minuti.)


mark-directories (On) - If set to On, completed directory names have a slash appended. Non è chiaro che questa sia la fonte del problema ...
medina,
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.