2012-06-23 40 views
26

我有我的Debian擠壓(6.0)的Git(版本1.7.2.5)bash compeletion。 Git使用aptitude安裝,我使用標準debian的bash,它支持命令行自動完成。如何爲Git命令設置自動完成?

現在,我剛剛在其他機器上安裝了Git(1.5.6.5)(Lenny/Debian 5.0),並且沒有自動完成。

  1. 爲什麼Git自動完成不能在第二臺機器上工作?我如何診斷?

  2. 什麼是在我的機器上完成工作?我查找了文件git-completion.bash,但它似乎不在我的機器上。 Git如何完成工作?

  3. 如何將git完成到另一臺機器?

+0

這可能是更合適的問題要麼[serverfault.com](http://serverfault.com)或[unix.stackexchange.com](http ://unix.stackexchange.com) – poncha

+0

如果你從源代碼編譯,請確保你編譯的git具有自動完成功能。還要確保您使用的是與舊計算機上相同的shell,並且它支持自動完成。正如你所看到的,我不確定是什麼造成的,所以留下來作爲評論。這可能是你的shell沒有提供完成,或者git沒有正確安裝完成。祝你好運。 –

+0

@poncha謝謝。我會再次發佈在unix.stackexchange.com – redochka

回答

26

您需要source /etc/bash_completion.d/git才能啓用git自動完成功能。

在我.bashrc它與做:

for file in /etc/bash_completion.d/* ; do 
    source "$file" 
done 
+2

這對我不起作用,因爲'/ etc/bash_completion.d /'內的一些完成腳本使用'bash_completion'中定義的輔助函數。 – joelpet

+0

這適用於CentOS 7,因爲沒有'/ etc/bash_completion'文件。 – Walf

38

把下面的行中的~/.bashrc

if [ -f /etc/bash_completion ]; then 
    . /etc/bash_completion 
fi 

腳本/程序/etc/bash_completion已經包含在/etc/bash_completion.d腳本,也定義了需要的一些功能包含的腳本。

+2

在我的Fedora 20系統中,'bash_completion'位於'/ usr/share/bash-completion /'中。運行'updatedb && locate bash_completion'應該可以幫助你找到它。 – joelpet

+1

這也解決了我的「無命令」有「發現」問題。 「have」函數在/ etc/bash_completion中定義,並且/etc/bash_completion.d/中的許多腳本依賴於它。 – jdunk

11

激活在Debian bash的自動完成的混帳的捷徑是

source /etc/bash_completion.d/git 

添加到~/.bashrc(並重新啓動終端)。

另請參見:「Pro Git」 - > 2.7 Git基礎 - 提示和技巧 - >Auto-Completion

0

使用Notepad ++編輯〜/ .bashrc文件。 將行放在腳本的底部並在行的開頭加上#。保存文件。例如: #source C:\ cygwin64 /etc/bash_completion.d/git

不要忘記在'source'和'/ etc /'之前放置整個文件路徑例如,我的cygwin64其中包含了「等」文件夾中的文件夾在我的C盤,所以我的文件路徑爲C:\ cygwin64的/ etc所以我包括在我的.bashrc文件行是:

# source c:\cygwin64/etc/bash_completion.d/git 

保存的.bashrc文件。打開Cygwin終端...繁榮!這是時候了。 然後我輸入下面的命令,它工作。 git clone git:\/\/github.com/magnumripper/JohnTheRipper -b bleeding-jumbo JtR-Bleeding

+3

問題是關於debian,而不是windows – oromoiluig

7

如果缺失,您需要安裝此軟件包。然後註銷並登錄。

apt-get install bash-completion 
0

有時git自動完成消失,因爲你不小心刪除了你的〜/ .bashrc文件。檢查您的主目錄中是否存在bashrc文件。如果沒有,你可以隨時複製它:

/etc/skel/.bashrc 
相關問題