Git commit -a'yı vim ile kullanma


111

Git konusunda yeniyim, bu yüzden git öğrenmeye github öğreticilerinden yararlanmaya karar verdim. Üçüncü bölüm şunları söyledi:

"Bu ilk örnek için, kendimizi projeye yazar olarak eklemek için BENİOKU dosyasını değiştireceğiz. Bu yüzden dosyayı basitçe düzenleyeceğiz. Şimdi bu değişikliği yapmak istiyoruz, bu yüzden git commit -akomutu çalıştırıyoruz ."

git commit -aKomutu kullandığımda konsol bir vim açıyor ve mesajımı yazdım ama bu vim editörünü konsoldan nasıl kapatacağımı bilmiyorum. Mesajı nasıl kaydederim ve vim'i nasıl kapatırım?


9
Bu grafiksel hile sayfası çok kullanışlıdır: viemu.com/vi-vim-cheat-sheet.gif . Bunu masaüstü duvar kağıdım olarak kullanıyorum.
yasouser

@Jean - Hangi platformdasınız ve konsol mu yoksa GUI Vim mi kullanıyorsunuz? Başlangıç ​​ekranına bir giriş metni (sürüm numarası, yazar vb.) Gelmiyor mu?
Rook

Yanıtlar:


193
  1. Vim'de :wEnternormal moddayken ile bir dosyayı kaydedersiniz (düğmesine basarak normal moda geçersiniz Esc).
  2. Dosyanızı :qnormal moddayken ile kapatırsınız .

Bu iki eylemi birleştirebilir Esc:wqEnterve commit'i kaydedip vim'den çıkmak için yapabilirsiniz.

Yukarıdakine alternatif olarak ZZ, dosyayı kaydedip vim'den çıkacak normal moddayken düğmesine de basabilirsiniz . Bu, aynı tuşa iki kez basıldığı için bazı insanlar için de daha kolaydır.


24
Ayrıca git commit -a -m "mesajınızı buraya" yazarak VIM'i getirmeyebilirsiniz.
David Basarab

8
@David: Elbette. Buradaki soruların çoğu, insanların -mseçeneği unutması ve sonra bir vim penceresinin içine atılması ve nasıl dışarı çıkacağını bilmemesidir.
abcd

3
@yoda: ctrl + c tuşlarını kullanarak da normal moda geçebilirsiniz. Ayrıca, kaydetmek ve çıkmak için Shift + (z + z) kullanılır (iki büyük Z).
Rocket Hazmat

1
@ Rocket: Haklısın. Onun zyerine girdiğimi fark etmemiştim Z.
abcd

5
@EEva: Evet, ama bunu bir acemiye öğretmek istemiyorum, sanki unutmuş gibi :, sonra karakterleri silmeye başlıyorlar ve bu paniğe yol açıyor 2.
abcd

58

Vim öğrenmeye çalışmak yerine, farklı bir kolay düzenleyici kullanın (örneğin nano gibi). Vim'i ne kadar sevsem de bu durumda kullanmanın çözüm olduğunu düşünmüyorum. Bunu öğrenmek adanmışlık ve zaman gerektirir.

git config core.editor "nano"

52
Bu komik; nano, Ubuntu'da varsayılandı ve nasıl kaydedeceğimi bulamadım, bu yüzden vim'e geçmek için komutunuzu kullandım.
hyperslug

11

Bir açıklama için bu konu başlığına bakın: Windows için VIM - Bir dosyadan kaydetmek ve çıkmak için ne yazmalıyım?

Orada yazdığım gibi: Vimming öğrenmek için hızlı referans kartlarından birini kullanabilirsin:

Ayrıca Windows'ta Git ile çalışacak bir düzenleyiciyi nasıl kurabilirim? Vim kullanmakta rahat değilseniz, ancak commit mesajlarınız için başka bir düzenleyici kullanmak istiyorsanız.

Kaydetme mesajınız çok uzun değilse, ayrıca yazabilirsiniz

git commit -a -m "your message here"


Bu doğru olsa da tavsiye edilmez .
Jorge Leitao

7

Daha iyi soru şudur: vim'den çıktığımda commit'i nasıl keserim?

2 yol vardır:

  1. :cq veya :cquit
  2. Yorumlar dahil, kaydetme mesajının tüm satırlarını silin ve ardından :wq

Her iki durumda da git'e bir hata kodu verecektir, bu yüzden commit ile devam etmeyecektir. Bu, özellikle git commit --amend.


Btw, bunu Ham radyo dilinden hatırlıyorum. Başında Contact , babası ölür sonra, genç Ellie (Jena Malone) Evreni, "CQ CQ CQ" söyler. Bu, "Tüm istasyonları aramak"
cdunn2001


1

Vurmaktan çıkmak için: q, çıkmanıza izin verecektir.

Kaydetmeden çıkmak istiyorsanız, şuna basabilirsiniz: q!

"Vim cheatsheet" üzerinde bir google araması, size hızlı kısayollar koleksiyonuyla birlikte yazdırmanız gereken bir referans sağlayabilir.

http://www.fprintf.net/vimCheatSheet.html

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.