2012-08-16 5 views
18

Bash-Tab-Vervollständigung fügt nach der ersten Vervollständigung zusätzlichen Platz hinzu, der weitere Vervollständigung stoppt, wenn das Erzwingungsziel eine Datei in mehrstufigen Ordnern ist.Bash-Tab-Vervollständigung fügt nach der ersten Vervollständigung zusätzlichen Platz hinzu

Zum Beispiel habe ich eine Datei im Pfad ~/Documents/foo/bar.txt, und ich möchte es auflisten. Ich stelle das folgende Problem, wenn der Eingang

[email protected]:~$ls Docu <TAB> 

I

[email protected]:~$ls Documents |(<-this is the cursor, so there is an extra space afer Documents) 

So bekomme ich kann nicht weiter Tab vollständig. Ich muss die Rücktaste drücken, um den zusätzlichen Speicherplatz zu löschen.

Normalerweise möchte ich erhalten:

[email protected]:~$ls Docu <TAB> 
[email protected]:~$ls Documents/ <TAB> 
[email protected]:~$ls Documents/foo/ <TAB> 
[email protected]:~$ls Documents/foo/bar.txt 
+2

Dies ist so nervigggggggg. Es scheint, es ist ein Fehler auf Ubuntu eingereicht https://bugs.launchpad.net/ubuntu/+source/acroread/+bug/769866 –

Antwort

6

ich beide das gleiche Problem mit meinem Bash-Abschluss in Ubuntu 11.10 und 12.04 gehabt haben. Ich habe festgestellt, dass ich durch Bearbeiten von/etc/bash_completion viele Befehle erhalten konnte, um richtig zu arbeiten. Speziell habe ich den folgenden Abschnitt auskommentiert:

#### 
# makeinfo and texi2dvi are defined elsewhere. 
# 
#for i in a2ps awk bash bc bison cat colordiff cp csplit \ 
# curl cut date df diff dir du enscript env expand fmt fold gperf gprof \ 
# grep grub head indent irb ld ldd less ln ls m4 md5sum mkdir mkfifo mknod \ 
# mv netstat nl nm objcopy objdump od paste patch pr ptx readelf rm rmdir \ 
# sed seq sha{,1,224,256,384,512}sum shar sort split strip tac tail tee \ 
# texindex touch tr uname unexpand uniq units vdir wc wget who; do 
# have $i && complete -F _longopt -o default $i 
#done 

Jetzt ls funktioniert wieder gut. Ich habe noch nicht herausgefunden, warum MV immer noch falsch ist.

+0

Vielen Dank! Ich wurde verrückt. Das fing bei mir nach einer Neuinstallation von 12.04 an (ich hatte das Problem in früheren Ubuntu-Versionen nie gehabt. Mein altes System war auf 11.10 dist-upgrade). – David

+0

Danke. Es klappt. – shiquanwang

+0

Danke, das hat mich für MONATE nervt! Ich habe sogar einen Fehlerbericht eingereicht, aber niemand schien darauf einzugehen. Dies funktionierte gerade jetzt, einschließlich für 'mv'. Hoffe, ich sehe keine seltsamen Nebenwirkungen, aber ich bin hoffnungsvoll. – Jonathan

21

Nur für den Rekord: Es gibt auch einen Fehler im Paket adobereader-enu (acroread), das die Bash-Vervollständigung unterbricht. In diesem Fall können Sie nur den symbolischen Link löschen:

rm /etc/bash_completion.d/acroread.sh 

Siehe auch: https://bugs.launchpad.net/ubuntu/+source/acroread/+bug/769866

+0

Hört sich an, ich hatte dieses Problem auch! – Valentin

+0

entfernt .. und behoben :) – Superbiji

+0

Gleiches hier, schöner Fang! – Victor

4

Dies hat here bei askubuntu beantwortet. Es ist auf den here

Relevante Antwort aus dem oben genannten Thread Bug bezogen werden:

bearbeiten/etc/bash_completion Linie 1587, Änderung Dateinamen Standard (eine Sicherungs zuerst).

0

Ich habe auch, um das Problem von _filedir mit _filedir_pdf in /etc/bash_completion.d/acroread.sh (Ubuntu 12,04)

acroread bash Abschluss ändert die _filedir Funktion dadurch zu ändern, das Verhalten zu verändern von vielen anderen auchbash Vervollständigungsfunktionen