Git tamamlama:
Git'in dosya adı otomatik tamamlama sistemiyle ilgili sorun yaşıyorum. OS X (10.9.3) üzerinde (1.9.3) zshile (5.0.5) kullanıyorum git. Her ikisi de zshve githomebrew ile kuruldu. (Tam sürüm çıktısı yazının altındadır.)
gitadlı kişinin dosya adı tamamlaması beklediğim gibi boşluk eklemiyor. Adında boşluk bulunan bir dosyanın adını yazdığımda, kabuk boşluk bırakmadan dosya adını ekler. zsh'ın yerleşik tamamlanması bunu yapmaz, ama gityapar.
İşte gördüğüm şeyin bir örneği.
Adlarında boşluk bulunan birkaç dosya içeren bir havuzum var.
% ls -la
test
test four - latest.txt
test three.txt
test two
Kabuk ters eğik çizgi, dosya adını eklemek için sekme tamamlamayı kullandığımda dosya adlarından beklendiği gibi kaçıyor.
% echo "testing" >> test<tab>
sekmeye üç kez vurduktan sonra bunu otomatik olarak tamamlar.
% echo "testing" >> test\ four\ -\ latest.txt
––– file
test test\ four\ -\ latest.txt test\ three.txt test\ two
git status bu dosya adlarını tırnak içinde gösterir (ne olduğunu tamamen anlar):
% git status --short
M test
M "test four - latest.txt"
M "test three.txt"
M "test two"
ancak git addsekme otomatik tamamlama ile denediğimde , yanlara doğru gider.
% git add test<tab>
sekmeye üç kez vurduktan sonra bununla sonuçlanır:
% git add test four - latest.txt
test test four - latest.txt test three.txt test two
Bu biraz gerileme denedim: denedim yani benim dotfiles, sürüm kontrolü bulunmaktadır zsh 4.3.15, git 1.8.3neredeyse eminim ne zaman ve bir yıl önce benim dotfiles, bu çalıştı. Tuhaf bir şekilde, bu kurulum hala kırılmıştı.
Ben var aşağı Buna daralmış _gitkaynaklı ediliyor tamamlama dosyası /usr/local/share/zsh/site-functions:
% echo $FPATH
/usr/local/share/zsh/site-functions:/usr/local/Cellar/zsh/5.0.5/share/zsh/functions
% ls -l /usr/local/share/zsh/site-functions
_git@ -> ../../../Cellar/git/1.9.3/share/zsh/site-functions/_git
_hg@ -> ../../../Cellar/mercurial/3.0/share/zsh/site-functions/_hg
_j@ -> ../../../Cellar/autojump/21.7.1/share/zsh/site-functions/_j
git-completion.bash@ -> ../../../Cellar/git/1.9.3/share/zsh/site-functions/git-completion.bash
go@ -> ../../../Cellar/go/HEAD/share/zsh/site-functions/go
El ile değiştirirseniz $FPATHbenim önce .zshrcishal compinit(veya basitçe kaldırmak /usr/local/share/zsh/site-functions/_gitsimgesel bağlantı), sonra tamamlamalar geri düşmesi zshbeklendiği gibi ve çalışma.
zshTamamlanmadan _git:
% git add test<tab>
sekmeye üç kez basmak doğru sonuçlar verir:
% git add test\ four\ -\ latest.txt
––– modified file
test test\ four\ -\ latest.txt test\ three.txt test\ two
Yan not: git-completion.bashBağlantıyı kaldırmayı denedim ve sadece tamamen kopuyor:
% git add test<tab>
bu baskınlığı üretir:
% git add test__git_zsh_bash_func:9: command not found: __git_aliased_command
git add test
––– file
test test\ four\ -\ latest.txt test\ three.txt test\ two
Ben gerçekten geri kalanı: Bu düzgün çalışmıyor almak istiyorum _gitdaha Repo-farkında daha çünkü tamamlama harika zsholanlar, ancak boşluk veya diğer özel karakterler ile dosya adları düzgün kaçtı gerekmektedir.
Yazılım sürümleri:
% zsh --version
zsh 5.0.5 (x86_64-apple-darwin13.0.0)
% git --version
git version 1.9.3
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.3
BuildVersion: 13D65
_gitVe git-completion.bashdosyalarını yükledim : git-completion.bash ve _git ( _git.shCloudApp'ın tarayıcıda görüntülenebilir olmasını sağlayacak şekilde yeniden adlandırıldı .)
_git. compadd -QTuhaf görünmek için yapılan çağrılar : -Q“özel karakter alıntılama” anlamına gelir. Kaldırmayı deneyin -Qgelen compaddçağrılar.
zshkelime bölme komut değiştirme sonuçlarının varsayılan davranışı nedeniyle oldukça eminim . Aslında - \bskaçış gerekli değildir - ya da ona nasıl baktığınıza bağlı olarak boştur. Set "SH_WORD_SPLIT" zsh.sourceforge.net/FAQ/zshfaq03.html
${=$(completion)}, döndükleri gibi veya ne olursa olsun çıktı almak için düzenleyin .