อัปเดต 2010-2011:
โซลูชันของzumalifeguard (upvoted) นั้นง่ายกว่าโซลูชันดั้งเดิมเนื่องจากไม่ต้องการสคริปต์ shell wrapper อีกต่อไป
ดังที่ฉันอธิบายใน " ฉันจะตั้งค่าตัวแก้ไขให้ทำงานกับ Git บน Windows ได้อย่างไร " ฉันชอบ wrapper เพราะง่ายกว่าที่จะลองและสลับผู้แก้ไขหรือเปลี่ยนเส้นทางของตัวแก้ไขเดียวโดยไม่ต้องลงทะเบียนการเปลี่ยนแปลงดังกล่าว กับgit config
อีกครั้ง
แต่นั่นเป็นเพียงฉัน
ข้อมูลเพิ่มเติม : โซลูชันต่อไปนี้ใช้งานได้กับCygwinในขณะที่โซลูชันของ zuamlifeguard ไม่ทำงาน
คำตอบเดิม
ดังต่อไปนี้:
C:\prog\git>git config --global core.editor C:/prog/git/npp.sh
C:/prog/git/npp.sh:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
ทำงานได้ดี คำสั่งเหล่านั้นถูกตีความว่าเป็นเชลล์สคริปต์ดังนั้นแนวคิดที่จะรวมชุดของคำสั่งต่าง ๆ ไว้ในsh
สคริปต์
(ตามความเห็นของFranky : "อย่าลืมบันทึกไฟล์ของคุณด้วยการสิ้นสุดบรรทัดสไตล์ Unix หรือรับข้อความแสดงข้อผิดพลาดลึกลับ!").sh
รายละเอียดเพิ่มเติมเกี่ยวกับคำถาม SO ฉันจะตั้งค่าเครื่องมือแก้ไขให้ทำงานกับ Git บน Windows ได้อย่างไร
สังเกต-multiInst
ตัวเลือก '' เพื่อให้แน่ใจว่ามีอินสแตนซ์ใหม่ของ notepad ++ สำหรับการโทรแต่ละครั้งจาก Git
โปรดทราบว่าหากคุณใช้ Git บนCygwin (และต้องการใช้ Notepad ++ จาก Cygwin ) scphantmจะอธิบายใน "การใช้ Notepad ++ สำหรับ Git ใน Cygwin " ที่คุณต้องระวัง:
git
กำลังผ่านcygwin
เส้นทางและnpp
ไม่รู้จะทำอย่างไรกับมัน
ดังนั้นสคริปต์ในกรณีนี้จะเป็น:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
หลายบรรทัดสำหรับการอ่านได้:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
ด้วย"$(cygpath -w "$*")"
การเป็นส่วนสำคัญที่นี่
Val แสดงความคิดเห็น (แล้วลบ) ที่คุณไม่ควรใช้-notabbar
ตัวเลือก:
มันไม่ดีเลยที่จะปิดการใช้งานแท็บในระหว่างการรีบูต แต่ทำให้เกิดความเสียหายอย่างมากต่อการใช้งาน Notepad ทั่วไปเนื่องจาก-notab
กลายเป็นการตั้งค่าเริ่มต้นและคุณต้องSettings>Preferences>General>TabBar> Hide>uncheck
ทุกครั้งที่คุณเริ่ม notepad หลังจากการรีบูต นี่คือนรก คุณแนะนำนรก
ดังนั้นควรใช้:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
นั่นคือ:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
หากคุณต้องการวางสคริปต์ ' npp.sh
' ในเส้นทางที่มีช่องว่าง (เหมือนใน ' c:\program files\...
',) คุณมีสามตัวเลือก:
พยายามเสนอราคาพา ธ (เครื่องหมายคำพูดเดี่ยวหรือคู่) ตามที่:
git config --global core.editor 'C:/program files/git/npp.sh'
หรือลองใช้สัญกรณ์สั้น (ไม่ได้พิสูจน์อักษร):
git config --global core.editor C:/progra~1/git/npp.sh
หรือ (ชื่นชอบ) วาง ' npp.sh
' ในส่วนไดเรกทอรีของ%PATH%
ตัวแปรสภาพแวดล้อมของคุณ คุณจะไม่ต้องระบุเส้นทางใด ๆ สำหรับสคริปต์
git config --global core.editor npp.sh
รายงานSteiny ในความคิดเห็นที่ต้องทำ:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'