2012-03-27 17 views
6

最近、私は、コマンドなぜ 'git ls-files'はタブ補完に表示されませんか?

git ls-files 

を発見し、私はそれが非常に便利(-hオプションを使用してそれを参照してください)を見つけます。私がgitと入力してTabを押すと、なぜ表示されませんか?

つまり、「その他のコマンド」のリストはgitですか?彼らは/bin/usr/binに表示されるように、デフォルトで

答えて

2

git ls-filesは配管コマンドであり、これらのコマンドの多くは「隠され」ています。時間が経つにつれ、多くのものがbash補完に追加されましたが、多くはまだ "隠されています"

+0

しかし、あなたは私に "hidden" gitコマンドのリストへのリンクをくれますか?私はそれらをチェックしたいと思います。 – Adobe

+2

@Adobe 'git help -a'を実行するとリストを見ることができます。 '〜/ .bash_completion'ファイルに以下を追加することで、タブ補完を上書きすることもできます:' _completion_loader git; __git_compute_porcelain_commands(){__git_compute_all_commands; __git_porcelain_commands = $ __ git_all_commands; } ' – dlitz

+0

この答えは質問に答えません - 'git'の"他の "コマンドはどこですか?だから、なぜそれが正解とタグ付けされていますか? – fnl

0

インストールし、タブ補完だけで何のファイル/usr/bin/git ls-filesはありませんなど、コマンドの名前が表示されます。

ls-filesは、シェルについて教えてくれるサブコマンドです。 bashを使用していると仮定すると、help completeを実行して、.bashrcに入れることができるコマンドを確認できます。

お使いのディストリビューションは、bashの補完パッケージを提供している場合、あなたは多くの時間を節約するためにそれをインストールすることができます。

apt-get install bash-completion # on Debian/Ubuntu/etc. 
yum install bash-completion  # on Fedora/Red Hat/etc. 

しかしmanojldsが指摘するように、これはあまり一般的に使用されるのgitコマンドのために動作しません。例えばls-filesのように、bash-completionはあなたからのものを隠すので。変更するには/etc/bash_completion.d/gitを編集する必要があります。

+0

私はかなりのOPには、bash-completionがインストールされていて、それはまだ良くありません。 –

4

あなたの~/.git-completion.sh__git_list_porcelain_commands()の機能を見てください。 gitがサポートしているがタブダンプルではないコマンドは、そこにリストされています。これらのコマンドのほとんどは、ls-filesを含むいわゆる「配管」コマンドです。それぞれの行にコメントを付けると、簡単にタブを完成させることができます。このように:

#ls-files)   : plumbing;; 
#ls-remote)  : plumbing;; 
#ls-tree)   : plumbing;; 
関連する問題