2012-08-16 29 views
18

Bash選項卡完成會在首次完成後添加額外空間,如果競爭目標是多級文件夾中的文件,則會停止進一步完成。Bash選項卡完成後第一次完成後會增加額外的空間

例如,我在路徑〜/ Documents/foo/bar.txt中有一個文件,我想列出它。 我面臨以下問題,當輸入

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

我得到

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

,所以我不能再標籤完整。我必須退格才能刪除多餘的空間。

通常我想:

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

這太惱人了。看起來Ubuntu上存在一個bug https://bugs.launchpad.net/ubuntu/+source/acroread/+bug/769866 – 2013-02-07 12:59:49

回答

6

我已經在Ubuntu 11.10和12.04這兩個有同樣的問題與我的bash完成。我發現我可以通過編輯/ etc/bash_completion來獲得許多命令以正確開始工作。具體而言,我註釋了以下部分:

#### 
# 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 

現在ls再次運行良好。我還沒有弄清楚爲什麼mv仍然是錯誤的行爲。

+0

謝謝!我瘋了。在12.04全新安裝後,我開始發生這種情況(我以前在Ubuntu的早期版本中從未遇到過這個問題,但我的舊系統已經升級到11.10)。 – David 2012-08-27 03:47:19

+0

謝謝。有用。 – shiquanwang 2012-09-09 13:16:13

+0

謝謝,這已經讓我煩惱了月!我甚至提交了一個錯誤報告,但似乎沒有人跟進。這個工作剛剛開始,包括'mv'。希望我沒有看到任何奇怪的副作用,但我很有希望。 – Jonathan 2013-02-25 01:56:21

21

只是爲了記錄:adobereader-enu(acroread)軟件包中還有一個錯誤,它打破了bash的完成。在這種情況下,你可以刪除符號鏈接:

rm /etc/bash_completion.d/acroread.sh 

參見:https://bugs.launchpad.net/ubuntu/+source/acroread/+bug/769866

+0

聽起來沒錯,我也有這個問題! – Valentin 2014-01-29 10:30:58

+0

刪除..並修復:) – Superbiji 2014-02-19 06:17:08

+0

同樣在這裏,很好的接收! – Victor 2015-03-31 13:42:00

4

這在askubuntu得到答覆here。這是關係到錯誤從上面的線程here

相關答案:

編輯/ etc/bash_completion線1587,更改默認的文件名(做一個備份第一)。

0

我也得到了解決此問題在/etc/bash_completion.d/acroread.sh (Ubuntu的12.04)

acroread bash補改變_filedir函數變化 _filedir與_filedir_pdf 從而改變行爲很多其他同樣完成功能