これを行う場合:
alias g='git'
すべての完了規則を失います(たとえば、入力後にTabキーを押すと、ブランチとリモートは自動的に完了しなくなりますg push o
)。
g=git
この1か月でエイリアスを756回使用しました。つまり、「g」キーと「i」キーを合計で1512回押すのを節約できました。それは、私のgitエイリアスと組み合わせると、おそらく月に何万回もキーを押す手間が省けます。
これを行う場合:
alias g='git'
すべての完了規則を失います(たとえば、入力後にTabキーを押すと、ブランチとリモートは自動的に完了しなくなりますg push o
)。
g=git
この1か月でエイリアスを756回使用しました。つまり、「g」キーと「i」キーを合計で1512回押すのを節約できました。それは、私のgitエイリアスと組み合わせると、おそらく月に何万回もキーを押す手間が省けます。
回答:
から適切にコピーして変更し/etc/bash_completion.d/git
、に次の行を追加します~/.bashrc
。
complete -o bashdefault -o default -o nospace -F _git g 2>/dev/null \
|| complete -o default -o nospace -F _git g
source /usr/share/bash-completion/completions/git
、.bashrc に追加する必要がありました
最新のbash-completionアップストリームが移動し、少し名前を変更しました。雪が降る:
source /usr/share/bash-completion/completions/git
__git_complete g __git_main
次のような場合は、Ubuntuの最新バージョン(14.04、Fedora 22以降など)で使用してください。
completion: function `_git' not found
完了中。
__git_complete gc _git_checkout
(または同様の)を使用して、より具体的なエイリアスの補完を設定します。検索/usr/.../git
右の名前を見つけるために、上記のように。
gc
=> git checkout
エイリアシングではなく)c
にcheckout
内git
、そして言ってgit c
。私が間違っている場合は修正してください。
で~/.bashrc
:
alias g='git'
source /usr/share/bash-completion/completions/git
complete -o default -o nospace -F _git g
http://29a.ch/2013/8/9/fixing-bash-autocomplete-on-ubuntu-13-04経由
最初に、元の完了コマンドを検索します。例:
$ complete | grep git
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git
次に、これらをスタートアップスクリプトに追加します(例:〜/ .bashrc):
# copy the original statement, but replace the last command (git) with your alias (g)
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g
# load dynamically loaded completion functions (may not be required)
_completion_loader git
_completion_loader
行が必要とされないことがあります。ただし、状況によっては、コマンドを入力しTAB
て最初に押した後にのみ、完了関数が動的にロードされます。したがって、元のコマンドを使用せずにエイリアス+を試してみると、TAB
「bash:completion:function not found」などのエラーが表示される場合があります。
これを行うための更新された方法(完了は私にとっては機能しません):
cd
-ホームディレクトリに切り替えるwget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
source ~/git-completion.bash
.bashrcファイルに追加します(このファイルがホームフォルダーにない場合、bashは自動的に検索します)alias g='git'
.bashrcファイルに追加します。source ~/.bashrc
__git_complete g _git
完全を期すために、この~/.bash-completion
ファイルを使用して回答を追加します。このファイルは、bash-completionスクリプトの最後にあります。
_xfunc git __git_complete g __git_main
_xfunc git __git_complete gl _git_log
_xfunc git __git_complete gd _git_diff
_xfunc git __git_complete gb _git_branch
その後、私~/.bashrc
にはエイリアスだけがあります。私がしようとしていた:
~/.bashrc
bash- completionなどで自分を汚すことを避けます(所属するものを保持します)✓_xfunc
とにかくgit-completionのソースは残念ながら。適切に実行する方法がわかったら、この回答を更新します(ランチパッドでも質問しました)。
こちらをご覧ください:https : //gist.github.com/scue/576310b7c6b7714aad05
wget https://gist.github.com/scue/576310b7c6b7714aad05/raw/459d46761c231f5c373c1cf496920b01bb6669d2/.bash_aliases.git -O ~/.bash_aliases.git
echo "test -e ~/.bash_aliases.git && source ~/.bash_aliases.git" >> ~/.bashrc
お楽しみください!(^ o ^)/