ฉันจะทำให้ 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.