การเปลี่ยนเส้นทาง Terminal.app ไปยัง iTerm.app


6

เป็นไปได้หรือไม่ที่จะเปลี่ยนเส้นทางแอพใน Mac OS X ไปยังแอพอื่น?

ถ้าไม่คุณสามารถเปลี่ยน Terminal.app ไปที่ iTerm.app ได้ดังนั้นทุกแอพที่ต้องการเปิดหน้าต่าง Terminal แต่เปิดหน้าต่าง iTerm แทน

ตัวอย่างเช่นเมื่อบางสิ่งทำงาน

  • tell application "Terminal" ใน AppleScript
  • open -a Terminal
  • open -a /Applications/Utilities/Terminal.app
  • /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
  • open -b com.apple.terminal
  • เป็นต้น

ตัวอย่างเมื่อสิ่งนี้เกิดขึ้น:

  • BBEdit: คลิก "Run in Terminal"
  • อัลเฟรด: การสร้างส่วนขยายของเชลล์และสลับเป็น "เงียบ" แล้วเปิดใช้งาน

1
แอปใดที่ต้องการเปิด Terminal.app
slhck

เมื่อสิ่งที่ทำงาน tell application "Terminal" ใน applescript เมื่อมีบางสิ่งทำงาน open -a Terminal, open -a /Applications/Utilities/Terminal.app, /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal หรือ open -b com.apple.terminal ฯลฯ ฯลฯ ...
Tyilo

ฉันถามได้ไหม ทำไม ? คุณครอบคลุมทุกกรณีที่ฉันนึกถึง แต่เพื่อที่จะทำเช่นนั้นคุณต้อง "เปลี่ยน" Terminal.app ให้เป็น iTerm.app อย่างมีประสิทธิภาพด้วยการเปลี่ยน Info.plist ไฟล์ที่อยู่ใน Terminal.app (อ่านเพิ่มเติมเกี่ยวกับเรื่องนั้น ที่นี่ ) หรือเพียงแค่ขยับ Terminal ปฏิบัติการออกไปและแทนที่ด้วยปฏิบัติการของ iTerm ไม่ทราบว่าจะใช้งานได้ตามที่คาดหวังหรือไม่
slhck

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

1
@slhck แน่นอนฉันหวังว่า Apple จะป้องกัน (โดย checksums, codesigning และ sandboxing) แทนที่ executables ของ Terminal ด้วยรหัสอื่น! และฉันเห็นด้วยอย่างยิ่งฉันไม่เคยเห็น. app อื่น ๆ ที่เปิดเทอร์มินัล เฉพาะไฟล์คำสั่งอาจมีปัญหา แต่คุณสามารถเปลี่ยนการกำหนด "เปิดด้วย ... " ได้
Asmus

คำตอบ:


5

ดังที่ได้กล่าวไว้ในความคิดเห็นด้านบนคุณจะไม่สามารถเปลี่ยนแปลงสิ่งเหล่านั้นได้ในระดับมาก แอปพลิเคชันที่เรียก Terminal.app จะทำเช่นนั้นโดยเรียกตัวระบุ Bundle com.apple.terminal. คุณต้องเปลี่ยนสิ่งนี้เป็น "ปลอม" เทอร์มินัลและเปลี่ยนไปใช้อันอื่น เป็นไปได้ไหม ฉันสงสัยอย่างมาก

ซึ่งหมายความว่าทุกแอปพลิเคชันที่เรียก Terminal จะมีการตั้งค่าสำหรับตัวระบุบันเดิลที่ใช้ บางคนอาจมีฮาร์ดโค้ดนั้นบางอันควรอนุญาตให้เปลี่ยนได้ทั้งผ่านการตั้งค่าหรือผ่านการตั้งค่ารายการการตั้งค่า


วิธีการทำให้ BBEdit ใช้เทอร์มินัลอื่น

สำหรับ BBEdit นั้นค่อนข้างง่าย ตามบันทึกประจำรุ่น . แม้ว่านี่เป็นรุ่น 8.7 และฉันไม่สามารถหาได้ใน "การตั้งค่าผู้เชี่ยวชาญ" ของรุ่น 10 อีกต่อไป บางทีพวกเขาอาจลบคุณลักษณะนี้ออกไป

defaults write com.barebones.bbedit Misc:TerminalBundleIDOverride "com.googlecode.iTerm2"

เพียงแค่แทนที่ com.apple.Terminal เมื่อใช้ชุดบันเดิลที่ระบุตัวจำลองเทอร์มินัลอื่น ๆ เช่น com.googlecode.iterm2 สำหรับ iTerm2

รายการที่คล้ายกันสามารถพบได้บน secrets.blacktree.com แม้ว่ามันจะไม่ทำงาน (ฉันไม่เคยเห็นก -bundleid ประเภทข้อมูลใน defaults )

ความคิดที่ดีที่สุดคือการขอการสนับสนุนจากนักพัฒนาของ BBEdit


วิธีทำให้อัลเฟรดใช้เทอร์มินัลอื่น

ส่วนขยายเชลล์ของ Alfred ใช้เทอร์มินัลอีมูเลเตอร์ คุณ ระบุ, ตามความช่วยเหลือ .

คุณสามารถเลือกที่จะใช้ OS X Terminal.app หรือ iTerm เช่นเดียวกับคำนำหน้าของคำสั่ง Shell ในการตั้งค่าอัลเฟรด

enter image description here

ตอนแรกมันไม่ทำงานสำหรับฉันดังนั้นฉันต้องลบ iTerm.app ลบ Alfred และค่ากำหนด / แคชแล้วติดตั้ง iTerm2 ใหม่ นี่คือคำอธิบายใน ฟอรัมการสนับสนุนของ Alfred .


มันไม่ควรจะเป็น defaults write com.barebones.bbedit Misc:TerminalBundleIDOverride "com.apple.Terminal" ? (ลบเครื่องหมายคำพูด p และเครื่องหมายคำพูดตรง) ไม่ว่าจะมีหรือไม่มี "p" มันไม่สามารถใช้งานได้ใน BBEdit 10 แต่ด้วยอัลเฟรดฉันเพิ่งต้องเปลี่ยนมันในรายการแบบเลื่อนลง Terminal / Shell
Tyilo

อ๊ะเกิดข้อผิดพลาดในการคัดลอก / วาง ดูเหมือนจะไม่ทำงานอีกต่อไป (ดูการแก้ไขด้านบน)
slhck

ใน BBEdit 11 คุณสามารถใช้: defaults write com.barebones.bbedit TerminalBundleID -string "com.googlecode.iterm2"
mediaczar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.