Git Bash ที่นี่ใน Console2?


47

MSysGit ติดตั้งรายการเมนูบริบทที่เปิดพรอมต์ Git Bash ที่โฟลเดอร์ที่เลือกในปัจจุบัน อย่างไรก็ตามสิ่งนี้จะเปิดหน้าต่าง cmd.exe และฉันต้องการให้เปิดในConsole2แทน

ฉันต้องแก้ไขอะไรบ้างเพื่อให้ทำงานได้

หมายเหตุฉันได้เห็นคำถามที่เกี่ยวข้องนี้แล้ว แต่คำตอบนั้นล้าสมัยแล้ว - MSysGit กำลังใช้สคริปต์ vba เพื่อเรียกใช้ bash prompt นอกจากนี้ยังไม่ได้อธิบายอย่างชัดเจนถึงวิธีการทำงานของ Console2

ปรับปรุง: คุณอาจจะสนใจในการทำเช่นเดียวกันกับConEmuเป็นทายาทที่ดีมากกว่าที่จะคอนโซล ดูที่นี่: Git Bash ที่นี่ใน ConEmu

คำตอบ:


44

นี่คือสิ่งที่ฉันทำ (เส้นทางของคุณที่มีความแตกต่างกันอย่างแน่นอน):

  1. สร้างแท็บใหม่ใน Console ด้วยค่าต่อไปนี้:
    • หัวข้อ: Git Bash
    • ไอคอน: C:\Program Files\Git\etc\git.ico
    • เปลือก "C:\Program Files\Git\bin\sh.exe" --login -i
    • dir เริ่มต้น: %HOMEDRIVE%%HOMEPATH%
  2. สร้างคีย์ใหม่ที่ถูกHKEY_CLASSES_ROOT\Directory\shell\เรียกgit_shell2ด้วยค่าข้อมูลเป็นGit Console Here
  3. สร้างคีย์ใหม่ที่ถูกHKEY_CLASSES_ROOT\Directory\shell\git_shell2\เรียกcommandด้วยค่าข้อมูลเป็น"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

นี่เป็นการหลอกลวง

แทนที่จะทำตามขั้นตอนที่ 2 และ 3 ข้างต้นคุณสามารถคัดลอกสิ่งต่อไปนี้ลงในไฟล์. reg (แก้ไขพา ธ เพื่อให้เหมาะกับการกำหนดค่าของคุณก่อน) จากนั้นนำเข้าสู่รีจิสตรี

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2]
@="Git Console Here"

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2\command]
@="\"C:\\Users\\charlesr\\My Dropbox\\Software\\Console2\\Console.exe\" -t \"Git Bash\" -d \"%1\""

เพียงทราบสำหรับคนอื่นที่พบสิ่งนี้ในภายหลังตรวจสอบให้แน่ใจว่าคุณใช้ Console2 รุ่น 32 บิตไม่เช่นนั้นจะล้มเหลว
coderanger

โปรดทราบว่าใน msysgit ล่าสุดไอคอนอยู่ใน C: \ msysgit \ share \ resources \ git.ico
Kevin Berridge

1
ขอบคุณ Charles แต่ทำไมทำตามขั้นตอนที่ 2 และ 3 มันใช้งานได้ดีเพียงแค่ทำตามขั้นตอนที่ 1 ไม่แน่ใจว่าทำไมต้องเปลี่ยนการตั้งค่าที่เก็บ?
Mark Kadlec

2
เรียบร้อยมาก หมายเหตุคุณยังสามารถเพิ่มเมนูบริบทเมื่อคลิกใน "พื้นหลัง" ของโฟลเดอร์ (ส่วนสีขาวไม่ใช่ไอคอน) gist.github.com/4048138
Ozh

ฉันใช้การตั้งค่านี้มาระยะหนึ่งแล้ว แต่ดูเหมือนว่าจะมีข้อ จำกัด ที่น่าเสียดายที่ไม่สามารถเรียกใช้งาน.batสคริปต์ได้ (โดยไม่ต้องเปลี่ยนไปใช้แท็บอื่นโดยทำงานแบบธรรมดาCmd.exe) มีใครเข้าใจเรื่องนี้บ้างไหม?
Eoin

7

สคริปต์ vba เพิ่งเปิดตัวทางลัด Git Bash ในไดเรกทอรีเดียวกัน เพียงแค่เปลี่ยนทางลัดนั้นเพื่อให้มันชี้ไปที่ปฏิบัติการของ Console2 และกำหนดค่า Console2 เพื่อให้มันใช้ SH ของ MSysGit เป็นเชลล์


ปรับปรุง

ศึกษารายละเอียดเพิ่มเติมเนื่องจากฉันต้องทำอีกครั้งบนคอมพิวเตอร์เครื่องใหม่:

  • การกำหนดค่า Console2

    1. เพิ่มแท็บใหม่ที่เรียกว่า "git"
    2. ตั้งค่าไอคอนเป็น C:\Program Files (x86)\Git\etc\git.ico
    3. ตั้งค่าเปลือกเป็น C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • ปรับแต่งทางลัดของ Git Bash

    1. เปลี่ยนเป้าหมายทางลัดเป็นC:\Tools\Console2\Console.exe -t git -d .(ซึ่งเป็นที่ตั้งของไบนารี Console2 ของคุณ)
    2. สนุกกับ "Git Bash Here" ใหม่ของคุณที่เปิดตัว Console2!

เคล็ดลับคือ "-d." ตัวเลือกที่ส่งผ่านไปยัง Console2: Git Bash.vbsสคริปต์เปลี่ยนไดเรกทอรีปัจจุบันไปยังจุดที่ชี้ด้วยเมาส์ก่อนที่จะเรียกใช้ทางลัด

หวังว่าจะช่วย


5

ในกรณีที่ทุกคนสะดุดกับสิ่งนี้ต้องการใช้ MinGW Bash ฉันพบวิธีแก้ปัญหาสำหรับสิ่งนั้น

  1. Console2, แก้ไข, การตั้งค่า, แท็บ, เพิ่ม
  2. ชื่อเรื่อง = Bash
  3. เชลล์ = C:\MinGW\msys\1.0\bin\sh.exe -l
  4. แก้ไขรีจิสตรี

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. สร้าง~/.profileด้วยสิ่งต่อไปนี้:

    cd -
    

cd Man Page

สิ่งนี้ใช้ได้กับ Console2 64- บิตและ 32- บิตไม่แน่ใจว่า coderanger อยู่ในสถานะใด


มีปัญหาหลายอย่างกับคำสั่งนี้ที่ทำให้คอนโซลกลับข้อผิดพลาด ก่อนอื่นHKCR\...\commandไม่ควรใส่เครื่องหมายคำพูด ต่อไปฉันเชื่อว่า\-dคุณหมายถึงส่ง/dพารามิเตอร์เพื่อระบุข้อมูลสำหรับรายการรีจิสตรีใหม่ นอกจากนี้คุณต้องมีเครื่องหมายอัญประกาศคู่ล้อมรอบค่าข้อมูลและ-tพารามิเตอร์ทำให้ Console.exe ไม่เปิดเลยดังนั้นให้ยกเว้นสิ่งนั้น มันควรมีลักษณะเช่นนี้:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy

เห็นได้ชัดจากความคิดเห็นของคุณที่คุณยังคงใช้อยู่cmd.exeเนื่องจาก Bash อนุญาตให้ใช้เครื่องหมายคำพูดเดี่ยวและคู่สำหรับสตริง คุณควรพิจารณาอัปเกรดเป็น Bash
Steven Penny

0

สมมติว่าคุณมีแท็บ Console2 ชื่อว่า 'bash':

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash]
@="Bash here (Console2)"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash\command]
@="\"C:\\Program Files (x86)\\Console2\\Console.exe\" -t Bash -d \"%V\"\\"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.