/ / Wie kann ich die Git-Vervollständigung erhalten, um mir Commit-Namen anzuzeigen? - windows, macos, git, cygwin, zsh

Wie kann ich die Git-Vervollständigung erhalten, um mir Commit-Namen anzuzeigen? - windows, macos, git, cygwin, zsh

Es gibt etwas, das ich nicht über Git und Vervollständigung in Zsh verstehe.

Ich bin mit einem Windows-Rechner mit Git (v2.11. FĂĽr Windows) und Cygwin mit Zsh (mit Babun). Wenn ich tippe git checkout und schlagen TAB zweimal erhalte ich eine Eingabeaufforderung fĂĽr Verzweigungen und Objektnamen:

Ziemlich ordentlich! Jetzt auf meinem OS X-Computer mit Git (2.13.0 fĂĽr Mac, installiert ĂĽber Homebrew) und Zsh, wenn ich tippe git checkout und schlagen TAB zweimal bekomme ich nur das:

Woher kommt die Funktionalität in der ersten Eingabeaufforderung? Mit anderen Worten, was muss ich unter OS X / Zsh installieren, um dies zu erreichen?

Einige Dinge, die ich versucht habe:

  • Ich habe bereits ausgeschlossen, dass es Oh-my-Zsh ist git Plugin macht es, denn wenn ich das unter Windows / Cygwin deaktiviere, bekomme ich immer noch die gleiche ausgefallene Vervollständigung.
  • Alles, was ich in Windows tun muss, beginnt mit einem leeren .zshrc Um diese Fertigstellung zum Laufen zu bringen, muss man laufen autoload -U compinit && compinit
  • Ich habe versucht hinzuzufĂĽgen fpath=(/usr/local/share/zsh/site-functions/ $fpath) zu meinem .zshrc in der hoffnung, dass es abholen wĂĽrde, was Homebrew installiert (wie in der brew info git Ausgabe), aber es hat nichts geändert.
  • Ich habe versucht zu installieren zsh-completions von Homebrew, fĂĽgte hinzu fpath=(/usr/local/share/zsh-completions $fpath) zu meinem .zshrc wie vorgeschlagen. Immer noch keine Veränderung.
  • Was mich noch mehr verwirrt ist, dass ich in letzter ZeitIch habe ein MacBook von einem Kollegen verwendet, der nicht viel ĂĽber Git wusste. Er hatte nur Git installiert. Er hat die gleiche erweiterte Vervollständigung erhalten, ohne etwas konfiguriert zu haben.
  • Meine .zcompdump, wenn das hilft: https://pastebin.com/raw/UzrZ2NqD
  • Meine .zshrc: https://github.com/slhck/dotfiles/blob/master/.zshrc

Weitere Debugging-Ausgaben von OS X, wenn ich tippe git, dann Ctrl-X, dann h:

tags in context :completion::complete:git::
argument-1 options  (_arguments __git_zsh_main _git)
use-compctl         (_default _git)
globbed-files       (_files _default _git)
tags in context :completion::complete:git:argument-1:
alias-commands common-commands all-commands  (__git_zsh_main _git)
alias-commands                               (__git_zsh_cmd_alias __git_zsh_main _git)
common-commands                              (__git_zsh_cmd_common __git_zsh_main _git)
all-commands                                 (__git_zsh_cmd_all __git_zsh_main _git)

Wenn ich dasselbe unter Windows / Cygwin mache, erhalte ich:

tags in context :completion::complete:git::
argument-1 options  (_arguments _git)
tags in context :completion::complete:git:argument-1:
aliases main-porcelain-commands user-commands third-party-commands ancillary-manipulator-commands ancillary-interrogator-commands interaction-commands plumbing-manipulator-commands plumbing-interrogator-commands plumbing-sync-commands plumbing-sync-helper-commands plumbing-internal-helper-commands  (_git_commands _git)

Ausgabe von ls -l ${^fpath}/_git

ls: /Users/werner/.oh-my-zsh/completions/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/functions/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/brew/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/docker-compose/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/docker/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/gem/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/git-extras/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/git-flow/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/git/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/github/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/osx/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/python/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/rails/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/ruby/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/svn/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/vagrant/_git: No such file or directory
ls: /Users/werner/.oh-my-zsh/plugins/virtualenv/_git: No such file or directory
ls: /usr/local/share/zsh-completions/_git: No such file or directory
-rw-r--r--  1 werner  admin  336270 Dec 21 19:42 /usr/local/Cellar/zsh/5.3.1/share/zsh/functions/_git
lrwxr-xr-x  1 werner  admin      56 May 18 17:26 /usr/local/share/zsh/site-functions/_git -> ../../../Cellar/git/2.13.0/share/zsh/site-functions/_git
lrwxr-xr-x  1 werner  admin      56 May 18 17:26 /usr/local/share/zsh/site-functions/_git -> ../../../Cellar/git/2.13.0/share/zsh/site-functions/_git
lrwxr-xr-x  1 werner  admin      56 May 18 17:26 /usr/local/share/zsh/site-functions/_git -> ../../../Cellar/git/2.13.0/share/zsh/site-functions/_git

Antworten:

0 fĂĽr Antwort â„– 1

Ich bin nicht sicher, was genau falsch war, aber hier ist, was ich getan habe, um das Problem zu lösen:

Ă–ffnen Sie zuerst das Terminal und starten Sie Bash (/bin/bash), dann:

brew uninstall zsh
rm -rf /usr/local/share/zsh/site-functions
brew install zsh

Anscheinend fĂĽhrt die Neuinstallation von Git jedoch dazu, dass dasselbe Problem erneut auftritt:

brew reinstall git

Sobald ich dies tue, ist die Vervollständigung wieder in ihrer reduzierten Form. In diesem Fall können Sie die von Homebrew installierten Git-Vervollständigungen entfernen:

rm /usr/local/share/zsh/site-functions/git-completion.bash
rm -rf /usr/local/share/zsh/site-functions/_git

Dadurch werden die erweiterten Vervollständigungen wieder angezeigt.