อัปเดตกันยายน 2558 (6 ปีต่อมา)
รุ่นล่าสุดของ git-for-Windows (2.5.3)ตอนนี้รวมถึง:
โดยการกำหนดค่าgit config core.editor notepad
ผู้ใช้สามารถใช้notepad.exe
เป็นบรรณาธิการเริ่มต้นของพวกเขา
การกำหนดค่าgit config format.commitMessageColumns 72
จะถูกหยิบขึ้นมาโดยแผ่นปิดแผ่นจดบันทึกและตัดบรรทัดข้อความยืนยันหลังจากผู้ใช้แก้ไข
ดูกระทำ 69b301bโดยโยฮันเน Schindelin (dscho
)
และ Git 2.16 (ไตรมาสที่ 1 ปี 2018) จะแสดงข้อความเพื่อบอกผู้ใช้ว่ากำลังรอให้ผู้ใช้แก้ไขให้เสร็จเมื่อวางไข่ในกรณีที่ผู้แก้ไขเปิดหน้าต่างที่ซ่อนอยู่หรือที่อื่นและผู้ใช้หลงทาง
ดูกระทำ abfb04d (7 ธันวาคม 2017) และกระทำ a64f213 (29 พฤศจิกายน 2017) โดยลาร์สไนเดอร์ (larsxschneider
)
ช่วยโดย: Junio C Hamano (gitster
)
(รวมโดยJunio C Hamano - gitster
-ในการกระทำ 0c69a13 , 19 ธันวาคม 2017)
launch_editor()
: ระบุว่า Git รอการป้อนข้อมูลจากผู้ใช้
เมื่อกราฟิกGIT_EDITOR
ถูกวางไข่โดยคำสั่ง Git ที่เปิดและรออินพุตของผู้ใช้ (เช่น " git rebase -i
") หน้าต่างแก้ไขอาจถูกบดบังโดยหน้าต่างอื่น
ผู้ใช้อาจถูกจ้องมองไปที่หน้าต่างเทอร์มินัล Git ดั้งเดิมโดยไม่ทราบว่าผู้ใช้จำเป็นต้องมีปฏิสัมพันธ์กับหน้าต่างอื่นก่อนที่ Git จะสามารถดำเนินการต่อไปได้ สำหรับผู้ใช้นี้ Git ดูเหมือนจะถูกแขวน
พิมพ์ข้อความที่ Git กำลังรออินพุตตัวแก้ไขในเทอร์มินัลดั้งเดิมและกำจัดมันเมื่อตัวแก้ไขกลับมาหากเทอร์มินัลรองรับการลบบรรทัดสุดท้าย
คำตอบเดิม
ฉันเพิ่งทดสอบกับ git รุ่น 1.6.2.msysgit.0.186.gf7512 และ Notepad ++ 5.3.1
ฉันไม่ต้องการตั้งค่าตัวแปร EDITOR ดังนั้นฉันจึงลอง:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
ที่ให้เสมอ:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
ถ้าฉันกำหนด npp.bat รวมถึง:
"c:\Program Files\Notepad++\notepad++.exe" %*
และฉันพิมพ์:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
เป็นเพียงการทำงานจากเซสชั่นดอสแต่ไม่ได้มาจากเปลือกคอมไพล์
(ไม่ใช่ว่ามีกลไกการกำหนดค่า core.editor สคริปต์ที่มี " start /WAIT...
" อยู่ในนั้นจะไม่ทำงาน แต่จะเปิดหน้าต่าง DOS ใหม่เท่านั้น)
คำตอบเบ็นเน็ตต์กล่าวถึงความเป็นไปได้ที่จะหลีกเลี่ยงการเพิ่มสคริปต์ แต่จะอ้างอิงโดยตรงโปรแกรมเองระหว่างคำพูดง่ายๆ หมายเหตุทิศทางของเครื่องหมายทับ! ใช้/
NOT \
เพื่อแยกโฟลเดอร์ในชื่อพา ธ !
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
หรือถ้าคุณอยู่ในระบบ 64 บิต:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
แต่ฉันชอบใช้สคริปต์ (ดูด้านล่าง): git config
วิธีการที่ฉันสามารถเล่นกับเส้นทางที่แตกต่างกันหรือตัวเลือกที่แตกต่างกันได้โดยไม่ต้องลงทะเบียนอีกครั้ง
ทางออกที่แท้จริง (พร้อมสคริปต์) คือการตระหนักว่า
สิ่งที่คุณอ้างถึงในไฟล์ปรับแต่งนั้นจริงๆแล้วคือเชลล์ ( /bin/sh
) สคริปต์ไม่ใช่สคริปต์ DOS
ดังนั้นสิ่งที่ทำงานคือ:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
ด้วยC:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
หรือ
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
ด้วยการตั้งค่านั้นฉันสามารถทำ ' git config --global --edit
' จาก DOS หรือ Git Shell หรือฉันสามารถทำได้ ' git rebase -i ...
' จาก DOS หรือ Git Shell
คำสั่ง Bot จะทริกเกอร์อินสแตนซ์ใหม่ของ notepad ++ (ดังนั้น-multiInst
ตัวเลือก ') และรอให้อินสแตนซ์นั้นปิดก่อนที่จะดำเนินการต่อ
โปรดทราบว่าฉันใช้เฉพาะ '/' ไม่ใช่\
' และฉันติดตั้ง msysgit โดยใช้ตัวเลือก 2 (เพิ่มgit\bin
ไดเรกทอรีลงในPATH
ตัวแปรสภาพแวดล้อม แต่ไม่มีการแทนที่เครื่องมือ windows บางตัวในตัว)
ความจริงที่ว่าแผ่นจดบันทึก ++ เรียกว่า. bat นั้นไม่สำคัญ
มันจะดีกว่าที่จะตั้งชื่อ 'npp.sh' และวางไว้ใน[git]\cmd
ไดเรกทอรีแม้ว่า (หรือในไดเรกทอรีใด ๆ ที่อ้างอิงโดยตัวแปรสภาพแวดล้อม PATH ของคุณ)
ดูสิ่งนี้ด้วย:
lightfire228เพิ่มในความคิดเห็น :
สำหรับใครก็ตามที่มีปัญหาที่ N ++ เพิ่งเปิดไฟล์เปล่าและ git ไม่รับข้อความคอมมิทของคุณโปรดดูที่ "การยกเลิกการคอมมิทเนื่องจากข้อความว่างเปล่า ": เปลี่ยนไฟล์ของคุณ.bat
หรือ.sh
พูดเป็น:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
นั่นจะบอกให้ notepad ++ เห็นเพื่อเปิดไฟล์ temp commit แทนที่จะเป็นไฟล์เปล่าตัวใหม่