Menggunakan git commit -a dengan vim

111

Saya baru mengenal git, jadi saya memutuskan untuk mempelajari git menggunakan tutorial github. Bab ketiga mengatakan:

"Untuk contoh pertama ini, kami akan memodifikasi file README untuk menambahkan diri kami sendiri sebagai penulis pada proyek. Jadi kami cukup mengedit file. Sekarang kami ingin melakukan perubahan itu, jadi kami menjalankan git commit -aperintah."

Ketika saya menggunakan git commit -aperintah, konsol membuka vim dan saya menulis pesan saya, tetapi saya tidak tahu cara menutup editor vim ini dari konsol. Bagaimana cara menyimpan pesan dan menutup vim?

Jean
sumber
9
Cheat sheet grafis ini sangat berguna: viemu.com/vi-vim-cheat-sheet.gif . Saya menggunakannya sebagai wallpaper desktop saya.
yasouser
@ Jean - Anda menggunakan platform apa, dan apakah Anda menggunakan konsol atau GUI Vim? Tidakkah Anda mendapatkan teks pengantar (nomor versi, penulis, dan sebagainya) di layar mulai?
Benteng

Jawaban:

193
  1. Dalam vim, Anda menyimpan file dengan :wEntersaat dalam mode normal (Anda bisa masuk ke mode normal dengan menekan Esc).
  2. Anda menutup file Anda dengan :qsaat dalam mode normal.

Anda dapat menggabungkan kedua tindakan ini dan melakukan Esc:wqEnter untuk menyimpan komit dan keluar dari vim.

Sebagai alternatif di atas, Anda juga dapat menekan ZZsaat dalam mode normal, yang akan menyimpan file dan keluar dari vim. Ini juga lebih mudah bagi sebagian orang karena tombol yang sama ditekan dua kali.

abcd
sumber
24
Anda juga dapat melakukan git commit -a -m "pesan Anda di sini" yang tidak akan menampilkan VIM.
David Basarab
8
@David: Tentu saja. Banyak dari pertanyaan-pertanyaan ini di sini adalah karena orang-orang lupa -mopsinya dan kemudian dilempar ke dalam jendela vim dan tidak tahu bagaimana cara keluar.
abcd
3
@yoda: Anda juga dapat mengakses mode normal dengan menggunakan ctrl + c. Selain itu, Shift + (z + z) untuk menyimpan dan keluar (dua huruf besar Z).
Roket Hazmat
1
@Rocket: Anda benar. Saya tidak menyadari bahwa saya telah masuk, zbukan Z.
abcd
5
@EEva: Ya, tapi saya lebih suka tidak mengajarkan itu kepada seorang pemula, seolah-olah mereka lupa :, kemudian mereka mulai menghapus karakter, dan kemudian menyebabkan kepanikan 2.
abcd
58

Daripada mencoba mempelajari vim, gunakan editor lain yang lebih mudah (seperti nano, misalnya). Sebanyak saya suka vim, saya tidak berpikir menggunakannya dalam kasus ini adalah solusinya. Butuh dedikasi dan waktu untuk menguasainya.

git config core.editor "nano"
Uku Loskit
sumber
52
Itu lucu; nano adalah default di Ubuntu dan saya tidak tahu cara menyimpan, jadi saya menggunakan perintah Anda untuk beralih ke vim.
hyperslug
11

Lihat utas ini untuk penjelasan: VIM untuk Windows - Apa yang saya ketik untuk menyimpan dan keluar dari file?

Seperti yang saya tulis di sana: untuk mempelajari Vimming, Anda dapat menggunakan salah satu kartu referensi cepat:

Perhatikan juga Bagaimana cara menyiapkan editor untuk bekerja dengan Git di Windows?jika Anda tidak nyaman menggunakan Vim tetapi ingin menggunakan editor lain untuk pesan komit Anda.

Jika pesan commit Anda tidak terlalu panjang, Anda juga bisa mengetik

git commit -a -m "your message here"
eckes
sumber
Anda juga dapat mengikuti jawaban ini untuk keluar dari vim stackoverflow.com/questions/6098742/using-git-commit-a-with-vim/…
David Basarab
Meskipun ini benar, namun tidak disarankan .
Jorge Leitao
7

Pertanyaan yang lebih baik adalah: Bagaimana saya menghentikan komit ketika saya keluar dari vim?

Ada 2 cara:

  1. :cq atau :cquit
  2. Hapus semua baris pesan komit, termasuk komentar, lalu :wq

Either way akan memberikan kode kesalahan pada git, jadi itu tidak akan melanjutkan dengan komit. Ini sangat berguna dengan git commit --amend.

cdunn2001
sumber
Btw, saya ingat ini dari istilah radio Ham. Pada awal Kontak , setelah ayahnya meninggal, Ellie muda (Jena Malone) memberi tahu Semesta, "CQ CQ CQ". Artinya, "Memanggil semua stasiun".
cdunn2001
1

Untuk keluar dari memukul: q akan membiarkan Anda keluar.

Jika Anda ingin berhenti tanpa menyimpan, Anda dapat menekan: q!

Pencarian google pada "vim cheatsheet" dapat memberi Anda referensi yang harus Anda cetak dengan koleksi pintasan cepat.

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

chrisjlee
sumber