ฉันจะทำให้ Git ใช้เครื่องมือแก้ไขที่ฉันเลือกได้อย่างไร


2547

ฉันต้องการเขียนข้อความคอมมิชชันของฉันใน Vim แต่มันเปิดไว้ใน Emacs

ฉันจะกำหนดค่า Git ให้ใช้ Vim ได้อย่างไร? โปรดทราบว่าฉันต้องการทำเช่นนี้ทั่วโลกไม่เพียง แต่สำหรับโครงการเดียว


202
"ทำอย่างไรให้ git ไปเป็นกลุ่มเพื่อคอมเม้นท์จาก git-go?"
— Michael Burr

คำตอบ:


3486

หากคุณต้องการตั้งค่าตัวแก้ไขเฉพาะสำหรับ Git ให้ทำอย่างใดอย่างหนึ่ง (คุณไม่จำเป็นต้องใช้ทั้งคู่):

  • ตั้งค่าcore.editorGit ของคุณ:git config --global core.editor "vim"
  • ตั้งค่าGIT_EDITORตัวแปรสภาพแวดล้อม:export GIT_EDITOR=vim

หากคุณต้องการตั้งโปรแกรมแก้ไขสำหรับ Git และโปรแกรมอื่น ๆให้ตั้งค่าตัวแปรมาตรฐานVISUALและEDITORสภาพแวดล้อม *:

export VISUAL=vim
export EDITOR="$VISUAL"

* การตั้งค่าทั้งไม่จำเป็นต้องจำเป็น VISUALแต่บางโปรแกรมอาจจะไม่ใช้มากขึ้นที่ถูกต้อง ดูเทียบกับVISUALEDITOR


สำหรับข้อความ Sublime : .gitconfigเพิ่มนี้ไป --waitเป็นสิ่งสำคัญ (มันจะช่วยให้การพิมพ์ข้อความในประเสริฐและจะรอให้บันทึก / เหตุการณ์อย่างใกล้ชิด.)

[core]
    editor = 'subl' --wait

'subl' สามารถถูกแทนที่ด้วยพา ธ เต็มของไฟล์สั่งการ แต่มักจะใช้ได้เมื่อติดตั้งอย่างถูกต้อง


96
ตัวแปรสภาพแวดล้อมของ EDITOR มีข้อได้เปรียบที่มีโปรแกรมอื่น ๆ จำนวนหนึ่งที่จะให้ความเคารพ
— Boojum

16
โปรดทราบว่าgit config --globalจะเขียนไปยังไฟล์กำหนดค่า git ส่วนตัว (ต่อผู้ใช้) ของคุณ บน Unices ~/.gitconfigมันเป็น ดังนั้นนี่จะกำหนดค่าสำหรับที่เก็บทั้งหมดของคุณ
— Jakub Narębski

42
คุณสามารถทดสอบว่าคุณเปลี่ยนแปลงเรียบร้อยแล้วโดยพยายามแก้ไขข้อความการส่งข้อความล่าสุด git commit --amend
— Marco M.

11
หากคุณกำลังทำตัวเลือก # 1 ใน Windows และมีช่องว่างในเส้นทางไปยังเครื่องมือแก้ไข (เช่นถ้าอยู่ภายใต้ Program Files) จากนั้นให้ตีราคาเดียวภายในเครื่องหมายคำพูดคู่ของคุณ เช่น "'C: / Program Files (x86) / สิ่งใด /App.exe'" - ชัดเจนสำหรับบางคน แต่มันไม่ใช่สำหรับฉัน!
— Pablissimo

5
@Abramodj -wไม่จำเป็นต้อง; -w {scriptout}บันทึกอักขระทั้งหมดที่คุณพิมพ์เมื่อทำการแก้ไขเพื่อเล่นซ้ำในภายหลัง บางทีคุณอาจจะทำให้เกิดความสับสนด้วย-fซึ่งเป็นสิ่งที่จำเป็นเมื่อเรียกรุ่น GUI ของกลุ่ม นั่นคือถ้าคุณใช้mvimแล้วแก้ไขที่คุณระบุควรจะมากกว่าmvim -f mvim
— Rory O'Kane

618

คัดลอกวางสิ่งนี้:

git config --global core.editor "vim"

ในกรณีที่คุณต้องการที่จะรู้ว่าสิ่งที่คุณทำ จากman git-commit:

ตัวแปรด้านสภาพแวดล้อมและการกำหนดค่า

ตัวแก้ไขที่ใช้เพื่อแก้ไขข้อความบันทึกการกระทำจะถูกเลือกจากGIT_EDITORตัวแปรสภาพแวดล้อมตัวแปรการcore.editorกำหนดค่าตัวแปรVISUALสภาพแวดล้อมหรือEDITORตัวแปรสภาพแวดล้อม (ตามลำดับ)


4
Btw ข้างต้นเป็นจริงสำหรับ CVS และ SVN และฉันเดาว่าการควบคุมเวอร์ชันอื่น ๆ
— armandino

6
@armandino: ใช่คนอื่น ๆ อาจจะใช้VISUALหรือEDITORแต่พวกเขาอย่างแน่นอนไม่ได้ใช้หรือGIT_EDITOR core.editor
— Mark Rushakoff

8
ใช่ - svnbook.red-bean.com/en/1.1/ch07.html#svn-ch-7-sect-1.3.2ดังนั้นในทางทฤษฎีถ้าฉันใช้ทั้ง svn และ git การตั้งค่า $ VISUAL หรือ $ EDITOR เป็นทางออกที่ดีที่สุดที่จะครอบคลุมทั้งสองโดยค่าเริ่มต้น!
— brasskazoo

12
เพื่อความสมบูรณ์, core.editor หมายถึง [core] editor = ... ในไฟล์
— JRG

2
ไม่ตอบคำถาม "ฉันจะตั้งค่า git อย่างไร ... "
— Ant6n

192

บน Ubuntu และ Debian (ขอบคุณ @MichielB) การเปลี่ยนแปลงตัวแก้ไขค่าเริ่มต้นสามารถทำได้โดยการเรียกใช้:

sudo update-alternatives --config editor

ซึ่งจะแจ้งให้ดังต่อไปนี้:

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 

8
บนเดเบียนสิ่งนี้ใช้ได้เช่นกันขอบคุณ! มันเริ่มต้นที่ Pico - argh
— MichielB

2
แน่นอนมันใช้งานได้กับ Debian; มันเป็นคุณสมบัติของเดเบียนซึ่งก็เหมือนกับสิ่งส่วนใหญ่ (ooh, แย้ง!), อูบุนตูก็สืบทอดมา ระบบของ Debian alternativesเป็นวิธีที่ง่ายกว่ามากในการจัดการค่าเริ่มต้นสำหรับประเภทโปรแกรมที่สนับสนุน สำหรับการอ้างอิง: debian-administr.org/article/91/…
— underscore_d

มันใช้งานได้ในขณะที่GIT_EDITORและEDITOR ไม่ทำงาน --ubuntu
— Ninja

ไม่มีตัวเลือกสำหรับ Emacs? ถ้าเป็นเรื่องจริงมันช่างน่าละอาย!
— haziz

2
@haziz update-alternativesจะแสดงบรรณาธิการที่ติดตั้งแล้ว Koen ไม่ได้ติดตั้ง Emacs
— เมเจอร์

59

ใน windows 7 ในขณะที่เพิ่มตัวแก้ไข "Sublime" มันก็ยังทำให้ฉันมีข้อผิดพลาด:

การยกเลิกการมอบหมายเนื่องจากข้อความการส่งว่างเปล่า

ประเสริฐไม่สามารถโฟกัสได้

ในการแก้ไขปัญหานี้ฉันเปิดไฟล์. gitconfig ใน c: / users / ชื่อผู้ใช้ / โฟลเดอร์และเพิ่มบรรทัดต่อไปนี้ด้วย - รอตัวเลือกนอกเครื่องหมายคำพูดคู่

[core]
      editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait

หวังว่าจะเป็นประโยชน์กับใครบางคนที่กำลังเผชิญกับปัญหาที่คล้ายกันกับ Sublime


ดี! ขอบคุณ Anmol ฉันมีปัญหากับสิ่งที่มันทำในข้อความที่ว่างเปล่า
— ddavison

ทำไมคุณต้องการใช้ประเสริฐสำหรับคอมไพล์คอมมิท
— Adam F

13
การแก้ไขคอมมิท git ส่วนใหญ่จะใช้เพื่อเพิ่มความคิดเห็นหลายบรรทัดและ Sublime เป็นตัวเลือกโปรแกรมเมอร์สำหรับเหตุผลที่หลากหลายสำหรับนักพัฒนาหลายคน โดยทั่วไปผู้คนมีแนวโน้มที่จะใช้เครื่องมือแก้ไขอย่างใดอย่างหนึ่งสำหรับการเขียนโปรแกรมส่วนใหญ่และงานอื่น ๆ ประเสริฐเป็นเพียงทางเลือกส่วนบุคคลก็สามารถแก้ไขใด ๆ
— Anmol Saraf

4
เพิ่งค้นพบว่าจำเป็นต้องใช้เครื่องหมายคำพูดเดี่ยว ' มันไม่ทำงานกับเครื่องหมายคำพูดคู่ ".
— dotnetCarpenter

1
แทนที่จะแก้ไข gitconfig ด้วยตนเองคุณสามารถใช้คำสั่งนี้git config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
— KayakinKoder

53

ใน Windows 7 ให้ตั้งค่าตัวแก้ไขเป็น Notepad ++

  • เปิดตัวแก้ไขข้อความใด ๆ
  • เปิดไฟล์นี้: C:\Users\YOUR_USERNAME\.gitconfig
  • เพิ่มส่วนนี้ไปที่ด้านล่าง:

[core]
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' 
  • บันทึกและปิดไฟล์
  • เมื่อคุณกำลังกระทำกับคอมไพล์เพียงเขียนและกดgit commit Enterมันจะปรากฏขึ้นเปิด Notepad ++
  • เขียนข้อความคอมมิชชันของคุณที่ด้านบนของไฟล์จากนั้นบันทึกและปิดไฟล์ ทำ!

ในที่สุดคนที่รู้วิธีการเขียนมันง่าย ๆ ! ขอบคุณ แต่คุณควรพูดถึงว่าในเส้นทางสู่ notepad ต้องใช้ '/' หรือ backslash สองครั้ง '\\' มิฉะนั้น git จะบ่น ...
— icl7126

10
คุณอาจต้องเพิ่มอย่างน้อย-multiInstเป็นพารามิเตอร์ใน Notepad และอาจเป็นไป-notabbarได้ ทำเช่นนี้หากคอมไพล์ไม่รู้ว่าเมื่อคุณแก้ไขไฟล์เสร็จแล้วและรออย่างถาวรหรือไม่เลย
— ErikE

1
สิ่งที่ฉันต้องการ เปรียบเทียบการใช้ \ และ /
— เฮนรี่

4
ในการตั้งค่า config บน commandline ฉันต้องใส่เครื่องหมายอัญประกาศคู่ในเครื่องหมายอัญประกาศเดี่ยวเช่น>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
— Josef

2
ในการเพิ่ม Notepadd ++ params ฉันต้องทำสิ่งนี้: editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar- นั่นคือ params นอกเครื่องหมายคำพูดเดียวที่
— ทำให้เข้าใจผิด

30

ในการสร้าง Visual Studio Code (vscode) โปรแกรมแก้ไข git เริ่มต้นของคุณ

git config --global core.editor "code --wait"

24

และถ้าคุณกำลังทำงานกับนักออกแบบโดยใช้บรรทัดคำสั่งแล้ว Pico และไม่ทราบทางลัด;)

git config --global core.editor "pico"

หรือ

export VISUAL=pico
export EDITOR=pico

18

Atom เป็นเครื่องมือแก้ไขคอมไพล์ของคุณ

git config --global core.editor "atom --wait"

Atom ต้องได้รับการกำหนดค่าให้เรียกใช้จากบรรทัดคำสั่งเพื่อให้การทำงานด้านบน:

OS X : ติดตั้งคำสั่งเชลล์จาก Atom: แถบเมนู> Atom> ติดตั้งคำสั่งของเชลล์

Windows : ไม่ต้องดำเนินการใด ๆ - อะตอมถูกกำหนดค่าให้เรียกใช้จากบรรทัดคำสั่งโดยค่าเริ่มต้น


17

การตั้งค่า Sublime Text 2 เป็น Git กระทำการแก้ไขใน Mac OSX 10

เรียกใช้คำสั่งนี้:

$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"

หรือเพียงแค่:

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

ยังไงก็เถอะมันไม่ได้ส่งข้อความไปยังคอมไพล์ ฉันได้รับ 'ยกเลิกการกระทำเนื่องจากข้อความคอมมิชชันที่ว่างเปล่า' ความผิดพลาด
— Mahendran

ฉันใช้คำสั่งแรกเพื่อตั้งค่า SL cmd + S ตามด้วย cmd + W เพื่อปิดตัวแก้ไข
— Mahendran

2
Visual Studio Code ยังรองรับ-wพารามิเตอร์ เช่น. $ git config --global core.editor "code -w". สิ่งที่เรียบร้อย
— Automatico

คำตอบอื่นที่นี่: stackoverflow.com/a/48212377/4561887ด้วยตัวอย่าง Linux
— Gabriel Staples

13

Windows: การตั้งค่า Notepad เป็นตัวแก้ไขข้อความเริ่มต้น

git config --global core.editor notepad.exe

กดCtrl+ Sเพื่อบันทึกข้อความยืนยันของคุณ หากต้องการทิ้งเพียงปิดหน้าต่างแผ่นบันทึกโดยไม่บันทึก

ในกรณีที่คุณกดปุ่มลัดเพื่อบันทึกจากนั้นเลือกยกเลิกให้ไปที่ไฟล์ -> บันทึกเป็นและในกล่องโต้ตอบที่เปิดขึ้นให้เปลี่ยน "บันทึกเป็นประเภท" เป็น "ไฟล์ทั้งหมด (*. *)" คุณจะเห็นไฟล์ชื่อ "COMMIT_EDITMSG" ลบและปิดหน้าต่างแผ่นจดบันทึก

แก้ไข:หรืออีกวิธีหนึ่งและง่ายกว่านั้นให้ลบเนื้อหาทั้งหมดออกจากหน้าต่างแผ่นจดบันทึกที่เปิดอยู่และกดบันทึก (ขอบคุณmwfearnleyสำหรับความคิดเห็น!)

ฉันคิดว่าสำหรับการเขียนขนาดเล็กเช่นการส่งข้อความ notepad ทำหน้าที่ได้ดีที่สุดเพราะมันง่ายมีหน้าต่างเปิดขึ้นในเวลาไม่นาน แม้แต่ประเสริฐของคุณอาจใช้เวลาหนึ่งหรือสองวินาทีในการลุกขึ้นเมื่อคุณมีปลั๊กอินและสิ่งของมากมาย


2
แทนที่จะไปที่ไฟล์ -> บันทึกเป็นคุณสามารถทำให้ไฟล์ว่างเปล่า (หรือใส่เครื่องหมายบรรทัดที่ไม่ว่าง) และจากนั้น Git จะยกเลิกเนื่องจากข้อความคอมมิทว่างเปล่า
— mwfearnley

@ Stepan คุณกำลังแก้ไขไหม? ถ้าเป็นเช่นนั้นฉันเดาว่ามันเกี่ยวข้องกับ\r\n(ขึ้นบรรทัดใหม่ใน Windows) และ\n(ขึ้นบรรทัดใหม่ใน linux ซึ่งเป็นค่าเริ่มต้นสำหรับ Git)
— Sнаđошƒаӽ

ดีกว่าคุณเพิ่มบรรทัดเช่นนี้core.editor = 'notepad' .git/COMMIT_EDITMSG --waitจึงเปิดและบันทึกข้อความแก้ไขเริ่มต้นและคุณไม่จำเป็นต้อง "บันทึกเป็น"
— Radon8472

12

นี่เป็นคำตอบสำหรับผู้ที่มาถึงคำถามนี้ซึ่งอาจต้องการลิงก์บรรณาธิการอื่นนอกเหนือจากกลุ่ม

แหล่งข้อมูลที่เชื่อมโยงโดยGithubมีแนวโน้มที่จะได้รับการปรับปรุงให้ทันสมัยอยู่เสมอเมื่อผู้แก้ไขได้รับการปรับปรุงแม้ว่าจะไม่มีคำตอบใน SO (รวมถึงสิ่งนี้)

การเชื่อมโยง Editors ข้อความกับ git

โพสต์ของ Github แสดงให้เห็นอย่างชัดเจนถึงสิ่งที่ต้องพิมพ์ลงในบรรทัดคำสั่งของคุณสำหรับผู้แก้ไขที่หลากหลายรวมถึงตัวเลือก / แฟล็กเฉพาะสำหรับแต่ละตัวแก้ไขเพื่อให้ทำงานได้ดีที่สุดกับ git

Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

ข้อความประเสริฐ:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"

อะตอม:
git config --global core.editor "atom --wait"

คำสั่งข้างต้นถือว่าตัวแก้ไขของคุณได้รับการติดตั้งในไดเรกทอรีเริ่มต้นสำหรับเครื่อง windows

โดยทั่วไปคำสั่งจะเพิ่มข้อความระหว่างเครื่องหมายคำพูดคู่.gitconfigในโฮมไดเร็กตอรี่ของคุณ
บนหน้าแรกของเครื่อง windows น่าจะเป็นC:\Users\your-user-nameที่ซึ่งชื่อผู้ใช้ของคุณคือชื่อเข้าสู่ระบบของคุณ จากบรรทัดคำสั่งคุณสามารถเข้าถึงไดเรกทอรีนี้โดยการพิมพ์ใน
cd ~

ตัวอย่างเช่นคำสั่งด้านบนจะเพิ่มบรรทัดต่อไปนี้ภายใต้[core]ส่วนดังนี้:
[core] editor = 'C:/Program Files/sublime text 3/subl.exe' -w

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


ขอบคุณฉันกำลังดิ้นรนกับความจริงที่ว่า "vim" เพิ่งเปิดตัวอินสแตนซ์ vim "ภายใน" สำหรับ Git (โดยไม่มีการตั้งค่าของฉัน ฯลฯ ) การให้เส้นทางแบบเต็มไปยังอินสแตนซ์ของฉันแก้ไขปัญหาได้!
— benichka

10

สำหรับผู้ใช้ emacs

.emacs:

(server-start)

shellrc:

export EDITOR=emacsclient

6
ต่อไปนี้เป็นวิธีตั้งค่า emacs ในโหมดเทอร์มินัลเมื่อมาgit config --global core.editor "emacs -nw"
— kuk Peninsula

ฉันใช้git config --global core.editor "emacs -nw -q"ที่-qไฟล์เริ่มต้นข้าม
— miguelmorin

8

การตั้งค่าที่ดีที่สุดสำหรับ Sublime Text 3 เป็นตัวแก้ไข Git ของคุณ (คำแนะนำสำหรับ Windows และ Linux):

ที่จะปฏิบัติตามคำแนะนำเหล่านี้ใน Windows ให้แน่ใจว่าคุณได้ติดตั้งGit สำหรับ Windows ใน Windows ฉันชอบใช้ Git Bash เพื่อให้รู้สึกเหมือนลีนุกซ์มากขึ้น

อันดับแรกเราต้องการสร้างโครงการ Sublime Text พิเศษเพื่อให้เราสามารถระบุการตั้งค่าโครงการพิเศษที่เราต้องการตั้งค่าเมื่อใดก็ตามที่ Git เรียกเครื่องมือแก้ไขเพื่อให้ง่ายขึ้นเมื่อทำการแก้ไขใน Git ยกตัวอย่างเช่นผมปกติตั้งผู้ปกครองของฉันถึง 120 ตัวอักษรในโครงการส่วนใหญ่ แต่สำหรับ Git กระทำข้อความที่ผมต้องการให้เป็น 72 ตัวอักษรเพื่อให้เหมาะอย่างในขั้วเมื่อคุณโทรหรือgit loggit lg


1. สร้างโครงการ Sublime Text ด้วยการตั้งค่าที่เราต้องการใช้แก้ไข Git ส่งข้อความ

เปิด Sublime Text แล้วไปที่เมนู"File" → "New Window"เพื่อสร้างโปรเจ็กต์นิรนาม ไปที่เมนู"โครงการ" → "บันทึกโครงการเป็น ... "และเลือกสถานที่เพื่อบันทึก ใน Linuxฉันบันทึกไว้ในไดเรกทอรีบ้านของฉัน Linux .gitconfig.sublime-projectกับชื่อไฟล์ เส้นทางของมันคือ: ~/.gitconfig.sublime-project. ใน Windowsยังบันทึกไว้ในไดเรกทอรีบ้านของคุณเช่น: C:\Users\MY_USER_NAME\.gitconfig.sublime-project ไปที่เมนู"โครงการ" → "แก้ไขโครงการ"เพื่อแก้ไขการตั้งค่าโครงการ วางต่อไปนี้และบันทึกการตั้งค่า ทำการแก้ไขเพิ่มเติมสำหรับการตั้งค่าโครงการของคุณหากต้องการ

{
    // For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html

    "folders":
    [

    ],

    "settings":
    {

        // Disables horizontal scrolling if enabled.
        // May be set to true, false, or "auto", where it will be disabled for
        // source code, and otherwise enabled.
        "word_wrap": false,

        // Set to a value other than 0 to force wrapping at that column rather than the
        // window width
        "wrap_width": 0,

        // Columns in which to display vertical rulers
        "rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles

        // The number of spaces a tab is considered equal to
        "tab_size": 4,

        // Set to true to insert spaces when tab is pressed
        "translate_tabs_to_spaces": true,
    },

    "build_systems":
    [

    ]

}

2. ตั้งค่าเครื่องมือแก้ไขที่ Git ใช้

ตอนนี้เราต้องตั้งค่าตัวแก้ไขให้ใช้โดย Git โดยแก้ไข.gitconfigไฟล์

สำหรับ Linux:

~/.gitconfigคัดลอกผู้ใช้ของคุณจากนี้จะตั้งอยู่ใน เปิดไฟล์นี้และเพิ่มบรรทัดต่อไปนี้ อย่าลืมใช้ชื่อพา ธ ที่ถูกต้องไปยังโครงการ Git ที่คุณเพิ่งสร้างขึ้นด้านบน! ~/.gitconfig.sublime-projectฉันใช้

[core]
    editor = subl --project ~/.gitconfig.sublime-project --wait

--waitเป็นสิ่งสำคัญมันบังคับ Git จะรอจนกว่าคุณจะปิดแฟ้มก่อนที่มันจะยังคงอยู่บน --projectสายเป็นสิ่งสำคัญที่จะบอกข้อความ Sublime ซึ่งโครงการที่คุณต้องการเปิดเมื่อใดก็ตามที่ Git เปิด Sublime ข้อความ

ตามคำตอบของ @ digitaldreamer ด้านบน ( https://stackoverflow.com/a/2596835/4561887 ) " sublสามารถถูกแทนที่ด้วยเส้นทางแบบเต็มของปฏิบัติการได้ แต่โดยปกติ [นามแฝงsubl] จะใช้ได้เมื่อติดตั้ง [Sublime] อย่างถูกต้อง"

สำหรับ Windows:

สำหรับ Windows ก่อนอื่นให้อ่านคำแนะนำ Linux สำหรับข้อมูลพื้นหลัง ตอนนี้เราจะทำอะไรที่เหมือนกันเกือบ

(ตัวเลือก: สร้างsublนามแฝงสำหรับใช้ใน Git Bash):

เปิดโปรแกรมแก้ไขข้อความ (เช่น Notepad, Notepad ++, Sublime Text, Geany , ฯลฯ ) และสร้างไฟล์ชื่อ ".bash_profile" ในโฮมไดเร็กตอรี่ของคุณ เส้นทางของมันจะเป็น: C:\Users\MY_USER_NAME\.bash_profile. บันทึกสิ่งต่อไปนี้ลงไป:

alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"

สิ่งนี้สร้างนามแฝง Git Bash ที่เรียกsublว่าตอนนี้เราสามารถใช้ใน Git Bash สำหรับ Windows เพื่อเปิด Sublime Text ได้อย่างง่ายดาย ขั้นตอนนี้ไม่จำเป็น แต่มีประโยชน์สำหรับการใช้ Git Bash ทั่วไป ตอนนี้คุณสามารถโทรsubl .หาใน Git Bash เพื่อเปิดโครงการ Sublime Text ใหม่ในไดเรกทอรีปัจจุบันของคุณ

(จำเป็น):

แก้ไข.gitconfigไฟล์ที่พบในโฮมไดเร็กตอรี่ของคุณ: C:\Users\MY_USER_NAME\.gitconfigโดยเพิ่มไฟล์ต่อไปนี้ สังเกตเห็นการเปลี่ยนแปลงเล็กน้อยจากคำสั่ง Linux ด้านบน:

[core]
  editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
  • ขอให้สังเกตว่าคุณต้องระบุเส้นทางแบบเต็มไปยังข้อความที่ปฏิบัติการได้ Sublime หมายเหตุทิศทางของเครื่องหมายทับ! ใช้/NOT \เพื่อแยกโฟลเดอร์ในชื่อพา ธ ! (ขอบคุณ VonC ที่ช่วยฉันดูสิ่งนี้ )
  • sublนามแฝงของเราที่เราทำเพื่อ Git Bash ด้านบนไม่ทำงานที่นี่ดังนั้นคุณไม่สามารถใช้งานได้เหมือนที่เราทำในตัวอย่าง Linux แต่คุณต้องระบุเส้นทางทั้งหมดตามที่แสดงด้านบน
  • อย่างไรก็ตาม~สัญลักษณ์ยังคงทำงานที่นี่เพื่อไปที่โฮมไดเร็กตอรี่ Windows ของคุณ

2.5 (ไม่บังคับ) ติดตั้งแพ็คเกจ "Git" ลงใน Sublime Text 3

สิ่งนี้จะช่วยให้คุณสามารถเน้นgit commitข้อความเพื่อเน้นข้อความรวมถึงการเข้าถึงคำสั่ง Git อื่น ๆ เช่นgit blame(ซึ่งฉันใช้บ่อยใน Sublime Text) หรือgit commit(ที่ฉันไม่ได้ใช้ใน Sublime Text เนื่องจากฉันต้องการบรรทัดคำสั่งสำหรับ Git ทั่วไป ไหลตามที่ฉันได้กล่าวถึงในความเห็นของฉันด้านล่างคำตอบนี้)

ในการติดตั้งแพคเกจ: อันดับแรกตรวจสอบให้แน่ใจว่าได้ติดตั้ง ถัดไปกดCtrl+ Shift+ P(เช่นเดียวกับเครื่องมือ→คำสั่ง Palette) และพิมพ์ทั้งหมดหรือบางส่วนของ“แพคเกจการควบคุม: การติดตั้งแพคเกจ” Enterจากนั้นกด ในช่องค้นหาที่เกิดขึ้นค้นหาแพ็คเกจ "Git" และกดEnterหรือคลิกเพื่อติดตั้งโดยอัตโนมัติ

เมื่อติดตั้งแล้วCtrl+ Shift+ Pแล้วค้นหาคำว่า "คอมไพล์" จะนำมาขึ้นคำสั่ง Git คุณสามารถใช้ภายในภายใน Sublime git blameข้อความในขณะนี้เช่น


3. ใช้มัน

ตอนนี้เมื่อคุณเรียกgit commitใช้เช่นปกติจากบรรทัดคำสั่งข้อความ Sublime จะเปิดขึ้นใน.gitconfig.sublime-projectเราสร้างขึ้นข้างต้นด้วยการตั้งค่าของโครงการที่! ในขณะที่คุณพิมพ์ย่อหน้าคุณจะสังเกตเห็นว่ามันขยายไปถึงไม้บรรทัดที่เราตั้งค่าไว้ตั้งแต่การตัดคำอ่อน เพื่อบังคับให้ห่ออย่างหนักผ่านทางอัตโนมัติแทรกยากผลตอบแทนในตอนท้ายของแต่ละบรรทัดวางเคอร์เซอร์บนเส้นระยะเวลาที่คุณต้องการอัตโนมัติห่อและกด+Alt Qตอนนี้มันจะถูกห่อหุ้ม / พับได้อย่างแน่นหนาที่ 72 ตัวอักษรซึ่งเป็นสิ่งที่เราตั้งไว้ในพารามิเตอร์การตั้งค่าโปรเจ็กต์ "โมหะ" ด้านบน

ตอนนี้บันทึกข้อความการกระทำของคุณด้วยCtrl+ Sและออก (จะเสร็จสมบูรณ์ของคุณgit commit) กับCtrl+ +ShiftW

ทำ!

ที่เกี่ยวข้อง:

  1. Git mergetool กับ Meld บน Windows
  2. https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles

1
ที่มีรายละเอียดค่อนข้างมาก +1
— VonC

ใน Sublime Text 3 ขณะนี้มีGit Commitประเภทไวยากรณ์ คุณสามารถข้ามขั้นตอน "โครงการข้อความประเสริฐ" แบบกำหนดเองได้ทันที
— yegeniy

ฉันไม่เห็นด้วย: นั่นคือการเน้นไวยากรณ์เท่านั้น โปรเจคที่กำหนดเองของฉันไม่ได้สัมผัสการไฮไลต์ของไวยากรณ์: มันกำหนดโมดุลและให้บริบทสำหรับคอมไพล์ของคุณที่จะเปิดเพื่อให้พวกเขาไม่เปิดในโปรเจ็กต์ที่คุณมีหรือเปิดล่าสุด ทั้งสองไม่เกี่ยวข้อง; ทำทั้งสองอย่าง
— Gabriel Staples

ฉันเพิ่งเพิ่มขั้นตอนที่ 2.5 แต่ (บิต "แต่" ที่นี่): ฉันไม่ได้ใช้ Sublime Text 3 เป็นตัวแก้ไขของฉัน (บางครั้งฉันใช้ Eclipse เนื่องจากมีการติดตามสัญลักษณ์ที่เหนือกว่าและการจัดทำดัชนีมากกว่า Sublime แม้ว่าจะเป็นตัวแก้ไขเส็งเคร็ง เมื่อเทียบกับ Sublime) และฉันชอบที่จะใช้ Git จาก command-line ดังนั้นฉันไม่แนะนำให้ข้ามขั้นตอนที่ 1 ถึงแม้ว่าคุณจะติดตั้งแพ็คเกจ "Git" ลงใน Sublime ตามที่ได้อธิบายไว้ในขั้นตอนที่ 2.5 แล้ว ใช่คุณสามารถทำ Git Commits ได้โดยตรงจาก Sublime แต่ฉันต้องการบรรทัดคำสั่ง
— Gabriel Staples

เคล็ดลับ: หากคุณใช้sublimeด้วยgitและยังใช้trim_trailing_white_space_on_saveที่คุณต้องการเพิ่มนามแฝงสำหรับแพทช์เพิ่มเพราะลบต่อท้ายแบ่งพื้นที่สีขาวแก้ไขแพทช์ที่มันมีความหมายมาก สิ่งนี้สามารถเกิดขึ้นได้กับบางสิ่งเช่นนี้:git config --global alias.patch "-c core.editor=vim add --patch"
— Timo

3

mvim เป็น git editor ของคุณ

เช่นเดียวกับแอปพลิเคชั่น GUI อื่น ๆ คุณจะต้องเรียกใช้ mvim ด้วยการตั้งค่าสถานะรอ

git config --global core.editor "mvim --remote-wait"

--remote-wait-silentเพื่อหลีกเลี่ยงข้อความแสดงข้อผิดพลาดที่น่าเกลียด :)
— Shinigami

2

สำหรับผู้ใช้ Windows ที่ต้องการใช้neovimกับระบบย่อย Windows สำหรับ Linux:

git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

นี่ไม่ใช่วิธีแก้ปัญหาที่ไม่สามารถป้องกันได้เนื่องจากไม่รองรับการรีบูตแบบโต้ตอบ (ตัวอย่าง) การปรับปรุงยินดีมาก!



1

สำหรับผู้ใช้ TextWrangler จากร้านแอพ Mac:

git config --global core.editor "open -n -W -a TextWrangler"

นอกจากนี้ตรวจสอบให้แน่ใจว่า "TextWrangler> การตั้งค่า> แอปพลิเคชัน> เมื่อ TextWrangler ใช้งานได้:" การตั้งค่าถูกตั้งค่าเป็น "ไม่ทำอะไรเลย"

สิ่งนี้ใช้ได้กับฉันใน OS X 10.11.4 ด้วย TextWrangler 5.0.2 จากแอพสโตร์สำหรับ Mac

คำอธิบาย:

-nหมายถึงการเปิดตัวอย่างใหม่

-Wวิธีการที่จะรอจนกว่าโปรแกรมประยุกต์ออกก่อนที่จะใช้เนื้อหาของแฟ้มที่แก้ไขเป็นกระทำข้อความ

-a TextWranglerวิธีการใช้โปรแกรม TextWrangler เพื่อเปิดไฟล์

ดูman openในแอป Mac Terminal ของคุณสำหรับรายละเอียดเพิ่มเติม


หาก TextWrangler เปิดโซลูชันของคุณอยู่แล้วจะเปิดอินสแตนซ์อื่นด้วยชุดไฟล์เดียวกันของชุดแรก ดูเหมือนว่าอันตราย
— Klaas

ฉันไม่ได้ติดตั้งเครื่องมือบรรทัดคำสั่ง TextWrangler นี้ ( barebones.com/support/textwrangler/cmd-line-tools.html ) git config --global core.editor "edit -w"และใช้งานแล้ว นี่จะเป็นการเปิดข้อความการส่งข้อความในอินสแตนซ์ปัจจุบันและทันทีที่คุณปิดเฉพาะเอกสารข้อความการส่งข้อมูลการกระทำจะดำเนินการต่อ
— Klaas

1

เมื่อใช้git-reviewฉันต้องแก้ไขsequence.editorค่าเพื่อให้สามารถทำ rebase เชิงโต้ตอบ ( git rebase -i -p):

git config --global sequence.editor "gvim"  # or whatever your prefer

gvim จำเป็นต้อง: apt install vim-gtk

อ้างอิง


1

สำหรับ Mac OS X ให้ใช้TextEditหรือตัวแก้ไขสภาพแวดล้อมทางธรรมชาติสำหรับข้อความ:

git config --global core.editor "open -W -n"

1

เพียงเพราะฉันมาที่นี่เพื่อค้นหาวิธีแก้ไขปัญหาแบบครั้งเดียว (ในกรณีของฉันฉันมักจะใช้vimแต่ครั้งนี้ฉันต้องการใช้ VS Code) สำหรับคำสั่งเดียวและคนอื่นอาจต้องการทราบเช่นกัน:

GIT_EDITOR='code -w' git rebase -i …

นี่คือgit/ hubรุ่นของฉันสำหรับบริบท:

git version 2.24.2 (Apple Git-127)
hub version 2.14.1

1

ในการทำให้ vim เป็นตัวแก้ไขดีฟอลต์สำหรับ git บนubuntu 20:04 ให้รันคำสั่งต่อไปนี้:

git config --global core.editor vim

0

สำหรับผู้ใช้ IntelliJ

เมื่อฉันพยายาม git rebase ฉันได้รับข้อผิดพลาดต่อไปนี้: 'hint: กำลังรอให้เอดิเตอร์ของคุณปิดไฟล์ ... code -n -w: code: ไม่พบคำสั่ง error: มีปัญหากับ code' editor -n -w '.'

ข้อผิดพลาดเดียวกันปรากฏขึ้นเมื่อฉันพยายามเชื่อมโยง IntelliJ กับ Git: ป้อนคำอธิบายรูปภาพที่นี่

ปัญหาคือฉันไม่ได้เพิ่มรหัสคำสั่งในตัวแปร PATH สภาพแวดล้อมของฉัน และฉันไม่ต้องการใช้ Visual Studio Code จากเทอร์มินัลของฉัน ดังนั้นจึงเป็นสาเหตุที่ทำให้ "ไม่พบคำสั่ง" ฉันแก้ไขได้โดยลบ

editor = code -n -w

จากส่วนหลักในไฟล์. gitconfig ของฉัน Git ทำงานอย่างถูกต้องอีกครั้ง


-1

สำหรับผู้ใช้ Textmate

สิ่งนี้จะเปิดตัวแก้ไข Textmate เมื่อคุณต้องการแก้ไขการกระทำของคุณ ต้องติดตั้งเครื่องมือบรรทัดคำสั่ง textmate

git config --global core.editor "mate -w"


@givanse คุณหมายถึงอะไร
— Matej

2
ฉันคิดว่าเขาหมายความว่ามันเป็นเรื่องเล็กน้อยโดยการเปรียบเทียบกับคำตอบที่เป็นกลุ่ม?
— โฟโต้

อืมไม่มันไม่ใช่ แต่ถ้าคุณใช้อย่างอื่นที่เป็นกลุ่ม (เช่นข้อความ)
— Matej

เพื่อนร่วมห้องยังมีตัวเลือก "รอ" ดังนั้นสำหรับฉันมันคือ: git config --global core.editor "/usr/local/bin/mate -w"
— trungly

-1

สำหรับผู้ใช้ Windows ที่ต้องการใช้ Kinesics Text Editor

สร้างไฟล์ชื่อ 'k.sh' เพิ่มข้อความและตำแหน่งต่อไปนี้ในโฮมไดเร็กตอรี่ของคุณ (~):

winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1

ที่พรอมต์ประเภทคอมไพล์:

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