Git commit in terminal เปิด VIM แต่ไม่สามารถกลับไปที่ terminal ได้


209

พยายามที่จะเรียนรู้ GitHub ในขณะนี้และทำสิ่งจำเป็นเกี่ยวกับGitนี้ไปที่ nettuts ฉันกำลังเรียนเกี่ยวกับการทำพันธะ

ประเภทครูgit commitและจะเปิด VIM เป็นเครื่องมือแก้ไขของเขา (ฉันต้องการทราบวิธีทำให้เปิดในSublime Text 2 แทน) อย่างไรก็ตามมันจะเปิดใน VIM และฉันเพิ่มใน 1 บรรทัดโดยกล่าวว่านี่เป็นการกระทำครั้งแรกของฉันและกดบันทึก .

ต่อจากนั้นแจ้งให้ฉันบันทึกผลลัพธ์ไปยังเดสก์ท็อปซึ่งเป็นสิ่งที่ฉันไม่เห็นใน screencast ของเขา ตอนนี้ฉันยังอยู่ใน VIM และไม่แน่ใจว่าจะกลับไปที่เทอร์มินัล 'ปกติ' ได้อย่างไร :(

ฉันไม่สามารถคิดออกได้ดังนั้นฉันเพิ่งออกจากเทอร์มินัลและเปิดใหม่อีกครั้งคอมไพล์กระทำอีกครั้งและมีข้อความเตือนเกี่ยวกับรายการซ้ำ! ถ้าไม่แน่ใจว่าฉันต้องนะหรือ(E)edit(A)abort

สถานะคอมไพล์

ป้อนคำอธิบายรูปภาพที่นี่

เป็นกลุ่ม

ป้อนคำอธิบายรูปภาพที่นี่

ข้อความเมื่อฉันเปิดเทอร์มินัลอีกครั้งและคอมไพล์คอมมิทอีกครั้ง

ป้อนคำอธิบายรูปภาพที่นี่


3
ถ้าคุณเพียงต้องการทราบวิธีการบันทึกและออกเป็นกลุ่มก็คือ: wq
guido

1
ปัญหาเดียวกันที่นี่ ... ทันทีที่ฉันพยายามคอมมิชชันเทอร์มินัลจะเปิดตัวแก้ไขบางชนิดที่ฉันไม่สามารถเลิกได้ น่ารำคาญมาก!
Kokodoko

3
@ Kokodoko ใช่แล้วฉันเพิ่งทำไปgit commit -m 'my message'แล้วนั่นแหละ:) ไม่จำเป็นต้องมีบรรณาธิการไม่จำเป็นต้องใช้ 1 เพียงต้องการ 1 liners
Leon Gaban

1
@LeonGaban การส่งข้อความสั้น ๆ นั้นโอเคสำหรับการคอมเม้นต์แรก แต่จากพวกคุณคุณควรลองใช้เทคนิคของการมีหัวเรื่องสั้น ๆ และจากนั้นให้รายละเอียดว่าเกิดอะไรขึ้น
liamvictor

1
@LeonGaban คุณช่างน่าทึ่ง
baydi

คำตอบ:


368

เพื่อบันทึกงานของคุณและออกจากการกดEscแล้ว:wq(สำหรับการเขียนและ q สำหรับออก)

หรืออีกวิธีหนึ่งคุณสามารถบันทึกและออกโดยกดEscแล้ว:x

ในการตั้งค่าแก้ไขอื่นทำงานexport EDITOR=myFavoriteEdiorใน terminal ของคุณซึ่งmyFavoriteEdiorสามารถvi, gedit, subl(สำหรับประเสริฐ) เป็นต้น


7
+1 ในการอธิบายลำดับคำสั่งและในกระบวนการที่แสดงวิธีการสลับบรรณาธิการถ้าจำเป็น( แต่อย่างจริงจังว่าทำไมทุกคนต้องการที่จะใช้โปรแกรมอื่น ๆ นอกเหนือจากที่เป็นกลุ่ม :)
Lieven Keersmaekers

15
NB การ:xบันทึกและออกจากกลุ่มอย่างง่าย ๆนั้นเร็วกว่า:wq;)
Xavier

1
คุณสามารถตั้งค่าโปรแกรมแก้ไขอย่างถาวรคุณสามารถใช้: git config
global core.editor myFavoriteEditor

2
คีย์ esc ไม่ทำอะไรเลยสำหรับฉัน คำสั่งลับนี้คืออะไรปี 2559 หรือปี 1996? เหลือเชื่อ ...
oyalhi

1
ทั้งหมดไม่ทำงาน ใช่ฉันป้อนข้อความยืนยัน เสียงเรียกเข้าครับ
Dave Kielpinski

40

ไม่ใช่คำตอบของปัญหา VIM จริงๆ แต่คุณสามารถใช้บรรทัดคำสั่งเพื่อป้อนข้อความยืนยันได้:

git commit -m "This is the first commit"

19

คุณต้องกลับสู่โหมดปกติและบันทึกข้อความยืนยันด้วย

<Esc>:wq

หรือ

<Esc>:x

หรือ

<Esc>ZZ

Escผลตอบแทนที่สำคัญคุณจากการแทรกโหมดปกติโหมด :wq, :xหรือZZลำดับเขียนการเปลี่ยนแปลงและออกจากบรรณาธิการ


2
ไม่ ... คีย์ esc ไม่ทำอะไรเลย ฉันติดอยู่ใน "ผสานสาขาหลักของ ... " โปรดป้อนข้อความยืนยันเพื่ออธิบายว่าเหตุใดการผสานนี้จึงจำเป็น
Kokodoko

ไม่คุณป้อนข้อความกระทำ? จะเกิดอะไรขึ้นเมื่อคุณกด<Esc>:wq?
Lieven Keersmaekers

2
ในกรณีของฉันไม่มีอะไรเกิดขึ้น คำสั่งลับนี้คืออะไรปี 2559 หรือปี 1996?
oyalhi

1
@ Homo-Erectus - ฉันเริ่มใช้เป็นกลุ่มเมื่อ 4 ปีก่อนและฉันเสียใจเพียงอย่างเดียวคือฉันไม่ได้เริ่มเร็วขึ้น ฉันไม่คิดว่าจะเสียเวลาคุณควรลอง มันมีเส้นโค้งการเรียนรู้ที่สูงชันใจคุณ แต่มันจะคุ้มค่าดี สำหรับคำสั่งฉันไม่มีอะไรเพิ่ม พิมพ์ <esc>, type:, type x และควรเป็นเช่นนั้น
Lieven Keersmaekers

@oyalhi ไม่เคยมีความล่าช้าในการเริ่มใช้ vim
Anatoly Yakimchuk

16

เพียงทำคำสั่ง "บันทึกและเลิก" เป็นกลุ่ม:wqควรทำเคล็ดลับ

เพื่อให้ Git เปิดในเครื่องมือแก้ไขอื่นคุณต้องเปลี่ยนการcore.editorตั้งค่าGit เป็นคำสั่งที่ใช้งานโปรแกรมแก้ไขที่คุณต้องการ

git config --global core.editor "command to start sublime text 2"


4
ขอบคุณสำหรับเคล็ดลับในการตั้งค่าตัวแก้ไขให้เป็นข้อความประเสริฐ ฉันพบปัญหาหนึ่งแล้วฉันต้องตั้งค่า--waitสถานะ: git config --global core.editor "subl --wait". วิธีนี้จะช่วยป้องกันAborting commit due to empty commit message.
Eric

16

นี่คือคำตอบสำหรับคำถามของคุณ ...

ฉันต้องการทราบวิธีทำให้เปิดใน Sublime Text 2 แทน

สำหรับ Windows:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

ตรวจสอบว่าเส้นทางsublime_text.exeนั้นถูกต้องและปรับถ้าจำเป็น

สำหรับ Mac / Linux:

git config --global core.editor "subl -n -w"

หากคุณได้รับข้อความแสดงข้อผิดพลาดเช่น:

ข้อผิดพลาด: มีปัญหากับตัวแก้ไข 'subl -n -w'

สร้างนามแฝงสำหรับ subl

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

ตรวจสอบอีกครั้งว่าพา ธ ตรงกับเครื่องของคุณ

สำหรับ Sublime Text เพียงบันทึกcmd Sและปิดหน้าต่างcmd Wเพื่อกลับไปที่คอมไพล์

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