hata: Git ile kullanılırken 'vi' düzenleyicisiyle ilgili bir sorun oluştu


13

viEditör olarak kullanmakla bu garip bir sorun var git commit -a.

Normal akış şöyledir: Yazarım git commit -a, vigörünür, tamamlama mesajımı giriyorum ve sonra :wqkaydedip çıkıyorum vi.

Bu iyi çalışıyor. Ancak, bazen bir yazım hatası yaparım ve :wqyazdığım yerine :Wq(çünkü shift için kullanın :). Sonra kendimi düzeltip :wqtekrar yazdığımda git, aşağıdaki hatayı veriyor:

error: There was a problem with the editor 'vi'.
Please supply the message using either -m or -F option.

Bunu nasıl düzeltebilirim?


Hangi sürümü gitve vi? Bunu vim 7.3, git sürüm 1.7.11.1 ile kopyalayamıyorum.
Christopher

@Christopher: vi 7.3ve git 1.7.9.6 (Apple Git-31.1), Mountain Lion
afaik'teki

Yanıtlar:


15

visıfır dışında bir durumla kullanılabilir, ancak kurulumunuz hakkında ek ayrıntılar olmadan, nedenini söylemek zor. İçin çok sayıda eklenti kullanıyorsanız dosyanızı vimtaşımaya ve kopyalayıp kopyalayamayacağınıza bakmayı deneyebilirsiniz . Bir vardır kaç kaynaktan , bu sorunu görüşmek en azından dahil potansiyel bir çözüm ile: biri.vimrc.vimrc.back

git config --global core.editor /usr/bin/vim

.vimrcAncak ilkini kaldırmayı denerdim . Daha fazla şaşkınlığa neden oluyor gibi görünüyor.


5
Teşekkürler, git config --global core.editor /usr/bin/vimdüzelttim.
houbysoft

1
@ applOOb'un çözümü daha iyidir, çünkü böyle bir hack değildir.
jefflunt

15

Burada yanıtlandığı gibi: /programming/22699614/git-commit-messages-lost-by-vi

Gerçek çözüm

git config --global core.editor vim -f

Vim belgelerine göre - -f option should be used when Vim is executed by a program that will wait for the edit session to finish


3
Sonunda ... bu doğru çözüm. Ayrıca, :Wsonradan kaydettiğinizde git mesajınızı vurma ve gitme sorununu giderir .
Ryanmt

Topal bir çözüm değil, aslında bir çözüm! Umarım kabul edilen cevabı okuyan insanlar normal vimçağırmalarıyla kullandıkları saldırı arasındaki farkı anlarlar .
jefflunt

1

Golang vim eklentilerini kullanıyor musunuz? Bu satır benim için vi çıkış değeri sorununa neden oluyor: filetype plugin indent off

Tüm golang eklenti bloğunun kaldırılması .vimrcsorunu çözdü. Kaçak kullanarak golang eklentisini yüklemek şu kadar kolay olabilir:ln -s $GOROOT/misc/vim ~/.vim/bundle/vim-golang

(Sadece sorunu belgelenmiş bu konuda üzerine vim-golang github )


0

Git yapılandırmasında bir sorun var sanırım.

Bu yüzden çözüm Git config'i sıfırlamak ve benim için çalıştı:

git config --global core.editor $(which vim)

$(which vim)daha esnek /usr/bin/vim(vim yürütülebilir bazı insanlar için orada olmayabilir)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.