ใช้คอมมิต -a กับ vim


111

ฉันเพิ่งเริ่มใช้คอมไพล์ดังนั้นฉันจึงตัดสินใจที่จะเรียนรู้คอมไพล์โดยใช้บทเรียนของ github บทที่สามกล่าวว่า:

"สำหรับตัวอย่างแรกนี้เราจะแก้ไขไฟล์ README เพื่อเพิ่มตัวเราเองเป็นผู้เขียนในโปรเจ็กต์ดังนั้นเราเพียงแค่แก้ไขไฟล์ตอนนี้เราต้องการยอมรับการเปลี่ยนแปลงนั้นดังนั้นเราจึงเรียกใช้git commit -aคำสั่ง"

เมื่อฉันใช้git commit -aคำสั่งคอนโซลจะเปิดกลุ่มและฉันเขียนข้อความของฉัน แต่ฉันไม่รู้วิธีปิดตัวแก้ไขกลุ่มนี้จากคอนโซล ฉันจะบันทึกข้อความและปิดกลุ่มได้อย่างไร


9
แผ่นโกงนี้กราฟิกเป็นประโยชน์อย่างมาก: viemu.com/vi-vim-cheat-sheet.gif ฉันใช้เป็นภาพพื้นหลังเดสก์ทอป
yasouser

@Jean - คุณอยู่บนแพลตฟอร์มอะไรและคุณใช้คอนโซลหรือ GUI Vim หรือไม่? คุณไม่ได้รับข้อความแนะนำตัว (หมายเลขเวอร์ชันผู้แต่งและอื่น ๆ ) บนหน้าจอเริ่มต้นใช่หรือไม่?
Rook

คำตอบ:


193
  1. ในกลุ่มคุณบันทึกไฟล์:wEnterในขณะที่อยู่ในโหมดปกติ (คุณเข้าสู่โหมดปกติโดยการกดEsc)
  2. คุณปิดไฟล์ของคุณด้วย:qในขณะที่อยู่ในโหมดปกติ

คุณสามารถรวมทั้งการกระทำเหล่านี้และทำEsc:wqEnterเพื่อบันทึกการกระทำและออกจากกลุ่ม

นอกจากนี้คุณยังสามารถกดZZในขณะที่อยู่ในโหมดปกติซึ่งจะบันทึกไฟล์และออกจากกลุ่ม วิธีนี้ง่ายกว่าสำหรับบางคนเนื่องจากเป็นการกดปุ่มเดียวกันสองครั้ง


24
คุณยังสามารถคอมมิต -a -m "ข้อความของคุณที่นี่" ซึ่งจะไม่แสดง VIM
David Basarab

8
@ เดวิด: แน่นอน คำถามเหล่านี้จำนวนมากที่นี่เป็นเพราะผู้คนลืมตัว-mเลือกและจากนั้นก็ถูกโยนเข้าไปในหน้าต่างเป็นกลุ่มและไม่รู้ว่าจะออกไปอย่างไร
abcd

3
@yoda: คุณสามารถเข้าสู่โหมดปกติได้โดยใช้ ctrl + c นอกจากนี้ยังเป็น Shift + (z + z) เพื่อบันทึกและออก (Z สองตัว)
Rocket Hazmat

1
@ Rocket: คุณถูกต้อง ผมไม่ทราบผมได้เข้ามาแทนz Z
abcd

5
@EEva: ใช่ แต่ฉันไม่อยากสอนเรื่องนั้นให้กับมือใหม่เพราะถ้าพวกเขาลืม:แล้วพวกเขาก็เริ่มลบตัวละครและนั่นก็นำไปสู่ความตื่นตระหนก 2
abcd

58

แทนที่จะพยายามเรียนรู้เป็นกลุ่มให้ใช้โปรแกรมแก้ไขอื่นที่ง่ายกว่า (เช่น nano เป็นต้น) เท่าที่ฉันชอบเป็นกลุ่มฉันไม่คิดว่าการใช้มันในกรณีนี้เป็นวิธีแก้ปัญหา ต้องใช้ความทุ่มเทและเวลาในการฝึกฝน

git config core.editor "nano"

52
มันสนุก; nano เป็นค่าเริ่มต้นใน Ubuntu และฉันไม่สามารถหาวิธีบันทึกได้ดังนั้นฉันจึงใช้คำสั่งของคุณเพื่อเปลี่ยนเป็นกลุ่ม
hyperslug

11

ดูคำอธิบายในเธรดนี้: VIM สำหรับ Windows - ฉันต้องพิมพ์อะไรเพื่อบันทึกและออกจากไฟล์

ตามที่ฉันเขียนไว้ที่นั่น: เพื่อเรียนรู้ Vimming คุณสามารถใช้หนึ่งในการ์ดอ้างอิงด่วน:

โปรดทราบว่าฉันจะตั้งค่าตัวแก้ไขเพื่อทำงานกับ Git บน Windows ได้อย่างไร หากคุณไม่สะดวกในการใช้ Vim แต่ต้องการใช้ตัวแก้ไขอื่นสำหรับข้อความคอมมิตของคุณ

หากข้อความคอมมิตของคุณไม่ยาวเกินไปคุณสามารถพิมพ์

git commit -a -m "your message here"

คุณยังสามารถทำตามคำตอบนี้เพื่อออกจาก vim stackoverflow.com/questions/6098742/using-git-commit-a-with-vim/…
David Basarab

แม้ว่าจะเป็นเรื่องจริง แต่ก็ไม่แนะนำให้ทำ
Jorge Leitao

7

คำถามที่ดีกว่าคือ: ฉันจะขัดจังหวะการกระทำได้อย่างไรเมื่อฉันออกจากกลุ่ม?

มี 2 ​​วิธีดังนี้

  1. :cq หรือ :cquit
  2. ลบบรรทัดทั้งหมดของข้อความคอมมิตรวมถึงความคิดเห็นจากนั้น :wq

ไม่ว่าจะด้วยวิธีใดก็ตามจะให้รหัสข้อผิดพลาด git ดังนั้นจะไม่ดำเนินการต่อ git commit --amendนี้จะเป็นประโยชน์โดยเฉพาะอย่างยิ่งกับ


แต่ฉันจำสิ่งนี้ได้จากศัพท์แสงวิทยุแฮม ในช่วงเริ่มต้นของการติดต่อหลังจากที่พ่อของเธอเสียชีวิตเอลลี (เยนามาโลน) ในวัยเยาว์ก็บอกกับจักรวาลว่า "CQ CQ CQ" นั่นหมายความว่า"โทรทุกสถานี"
cdunn2001


1

หากต้องการออกจากการกดปุ่ม: q จะให้คุณออก

หากคุณต้องการออกโดยไม่บันทึกคุณสามารถกด: q!

การค้นหาโดย Google เกี่ยวกับ "vim cheatsheet" สามารถให้ข้อมูลอ้างอิงที่คุณควรพิมพ์ออกมาพร้อมกับชุดทางลัดสั้น ๆ

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.