มีแป้นพิมพ์ลัด (ฮ็อตคีย์) เพื่อเปิด Terminal ใน macOS หรือไม่


125

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

ใน Ubuntu ฉันใช้ ( window+ Alt+ T) เพื่อเปิด Terminal แต่ตอนนี้ฉันใช้ Macbook ในงานเขียนโปรแกรมของฉัน

บางครั้งฉันใช้ Spotlight เพื่อค้นหา "Terminal" แล้วกด Enter

ฉันต้องการทราบว่าสามารถกำหนดปุ่มลัดของแป้นพิมพ์ให้ทำได้หรือไม่

ขอบคุณ


33
ฉันโหวตให้เปิดคำถามนี้อีกครั้งเนื่องจากอยู่ภายใต้ "เครื่องมือที่ใช้ในการเขียนโปรแกรมเป็นหลัก" โปรแกรมเมอร์ใช้เทอร์มินัลเป็นหลักในการรันงานที่เกี่ยวข้องกับการเขียนโปรแกรม
Greg Kopff

1
@JonKiparsky คำถามคือการเปิด Terminal ไว้ที่ไหนสักแห่งและเปิดหน้าต่างใหม่เมื่อแอปอื่นมีโฟกัส
Quentin Pradet

4
เพียงเพราะฉันคิดว่ามันไร้สาระ ... ฉันกำลังย้ำสิ่งที่ @GregKopff ระบุ ... "เว้นแต่ว่าพวกเขาจะเกี่ยวข้องโดยตรงกับเครื่องมือที่ใช้ในการเขียนโปรแกรมเป็นหลัก" ... Gopal Prasad, OP ระบุอย่างชัดเจนว่า "หนึ่งในเครื่องมือหลักของฉันที่ใช้สำหรับ การเขียนโปรแกรมคือ Terminal ของฉัน " Like come on .. การแก้ปัญหานี้มีคุณค่าสูง
mmr118

1
นี่เป็นคำถามที่ใช้ได้อย่างสมบูรณ์แบบ! อาจมีหลายคนที่มาจาก Linux (ใช้เดสก์ท็อปเช่น Unity, XFCE, Cinnamon, MATE เป็นต้น) กำลังมองหาฟังก์ชันเช่นนี้ การโหวตเพิ่มขึ้นพิสูจน์ความสนใจ
Socrates

iTerm2 . ฉันไม่ได้พยายามที่จะเปิดเผยอย่างจริงจังเพียงแค่ใช้ iTerm2
Benjamin R

คำตอบ:


127

ฉันทดสอบขั้นตอนต่อไปนี้ภายใต้ macOS Mojave 10.14.6 (18G3020)

เปิด Automator สร้างเอกสารประเภท“ การดำเนินการด่วน”:

เทมเพลตการดำเนินการด่วน

(ใน macOS เวอร์ชันเก่าให้ใช้เทมเพลต“ บริการ”)

ในเอกสาร Automator ใหม่ให้เพิ่มการดำเนินการ“ เรียกใช้ AppleScript” (คุณสามารถพิมพ์“ เรียกใช้ applescript” ในช่องค้นหาที่ด้านบนสุดของรายการการดำเนินการเพื่อค้นหา) นี่คือ AppleScript ที่จะวางลงในการดำเนินการ:

on run {input, parameters}
    tell application "Terminal"
        if it is running then
            do script ""
        end if
        activate
    end tell
end run

ตั้งค่าป๊อปอัป“ เวิร์กโฟลว์ได้รับ” เป็น“ ไม่ป้อนข้อมูล” โดยรวมควรมีลักษณะดังนี้:

เวิร์กโฟลว์ด้วย applescript

บันทึกเอกสารด้วยชื่อ“ เทอร์มินัลใหม่” จากนั้นไปที่เมนู Automator (หรือเมนูแอปในแอปพลิเคชันที่กำลังทำงานอยู่) และเปิดเมนูย่อยบริการ ตอนนี้คุณควรเห็นการดำเนินการด่วน "เทอร์มินัลใหม่":

รายการเมนูบริการ Terminal ใหม่

หากคุณคลิกรายการเมนู“ เทอร์มินัลใหม่” คุณจะได้รับกล่องโต้ตอบ:

กล่องโต้ตอบการอนุญาต

คลิกตกลงเพื่อให้การดำเนินการทำงาน คุณจะเห็นกล่องโต้ตอบนี้หนึ่งครั้งในแต่ละแอปพลิเคชันที่อยู่ด้านหน้าสุดเมื่อคุณใช้การกระทำ กล่าวอีกนัยหนึ่งครั้งแรกที่คุณใช้การกระทำในขณะที่ Finder อยู่ด้านหน้าสุดคุณจะเห็นกล่องโต้ตอบ และในครั้งแรกที่คุณใช้การกระทำในขณะที่ Safari อยู่ด้านหน้าสุดคุณจะเห็นกล่องโต้ตอบ และอื่น ๆ

หลังจากคุณคลิกตกลงในกล่องโต้ตอบ Terminal ควรเปิดหน้าต่างใหม่

ในการกำหนดแป้นพิมพ์ลัดให้กับการดำเนินการด่วนให้เลือกรายการ“ การตั้งค่าบริการ…” จากเมนูบริการ (หรือเปิดการตั้งค่าระบบเลือกบานหน้าต่างแป้นพิมพ์จากนั้นเลือกแท็บทางลัดจากนั้นเลือกบริการจากรายการด้านซ้ายมือ) เลื่อนไปที่ด้านล่างของรายการทางขวามือและค้นหาบริการเทอร์มินัลใหม่ คลิกแล้วคุณจะเห็นปุ่ม "เพิ่มทางลัด":

เพิ่มปุ่มทางลัด

คลิกปุ่มแล้วกดแป้นพิมพ์ลัดที่คุณต้องการ จากนั้นเกาหัวเพราะ (เมื่อฉันลอง) ปุ่มเพิ่มทางลัดจะปรากฏขึ้นอีกครั้ง แต่คลิกปุ่มอีกครั้งและคุณจะเห็นทางลัดของคุณ:

ชุดแป้นพิมพ์ลัด

ตอนนี้คุณควรจะกดแป้นพิมพ์ลัดได้ในสถานการณ์ส่วนใหญ่เพื่อรับหน้าต่างเทอร์มินัลใหม่


9
ฉันชอบคำตอบของคุณแม้ว่าชาวบ้านบางคนจะไม่ชอบคำถามก็ตาม! :-)
Mark Setchell

3
วิธีนี้ใช้งานได้ดีสำหรับฉันยกเว้นเมื่อแอป Terminal ยังไม่เริ่มทำงาน ในกรณีนี้ฉันจะได้รับหน้าต่าง Terminal ใหม่สองหน้าต่าง ฉันแก้ไขสิ่งนี้โดยเปลี่ยน AppleScript เป็นสิ่งต่อไปนี้: เมื่อรัน {input, parameters} บอกแอปพลิเคชัน "Terminal" ว่ากำลังทำงานอยู่ให้ทำ script "" end ถ้าเปิดใช้งาน end tell return input end run
chrisdembia

3
@robmayoff ฉันมีปัญหาในการใช้งานสคริปต์ของคุณ มันทำงานได้ดีเมื่อฉันคลิกปุ่มเล่นใน Automator The action "Run AppleScript" encountered an errorแต่เมื่อฉันคลิกงานที่อยู่ภายใต้การบริการที่มีข้อผิดพลาดปรากฏขึ้นบอกว่า ความคิดใด ๆ ? ฉันใช้ OSX 10.12.1 ถ้าเป็นเช่นนั้น
Axim

7
ฉันมีปัญหาที่จะเปิดหน้าต่างถ้า Terminal ไม่มีหน้าต่าง แต่ถ้ามีหน้าต่างเปิดอยู่มันก็จะเลือกหน้าต่างนั้น สิ่งที่ฉันต้องทำคือลบคำว่า "เปลือก" ออกจากสคริปต์
Holden Lewis

2
ฉันมีปัญหาในการทำสำเนา windows ด้วยการอัปเดตคำตอบนี้ล่าสุด ฉันได้แก้ไขแล้วด้วยสคริปต์ต่อไปนี้on run {input, parameters} tell application "Terminal" if not (exists window 1) then reopen activate end tell end run
Jofsey

9

ในฐานะโปรแกรมเมอร์เราต้องการวิธีที่เร็วที่สุดและไม่ยุ่งยากที่สุดในการรับเครื่องมือของเราเพื่อให้เราสามารถเริ่มแฮ็กได้ นี่คือวิธีที่ฉันทำให้มันทำงานใน MacOS 10.13.1 (High Sierra):

  • ตัวเลือกที่ 1: System Preferences | Keyboard | Shortcut | Servicesไปที่ ภายใต้Files and Foldersส่วนเปิดใช้งานNew Terminal at Folder และ / หรือNew Terminal Tab at Folderและกำหนดคีย์ลัดให้ การกำหนดค่าแป้นพิมพ์ลัด

  • ตัวเลือกที่ 2: หากคุณต้องการให้ปุ่มลัดทำงานได้ทุกที่ให้สร้างบริการใหม่โดยใช้ Automator จากนั้นไปที่แป้นพิมพ์ลัดเพื่อกำหนดปุ่มทางลัดให้ ข้อ จำกัด ที่ทราบ: ไม่ทำงานจากเดสก์ท็อป

ใส่คำอธิบายภาพที่นี่

หมายเหตุ:

  • หากทางลัดใช้ไม่ได้ผลอาจขัดแย้งกับการผูกคีย์อื่น (และระบบปฏิบัติการจะไม่เตือนคุณ) ให้ลองวิธีอื่นเช่นถ้า⇧⌥Tไม่ทำงานให้ลองใช้⇧⌘T
  • ไม่ต้องสะกดถูกMacOSก็ไม่จำเป็น

1
ตัวเลือก 2 ใช้ได้ผลสำหรับฉันขอบคุณ! ข้อ จำกัด แปลก ๆ ที่ไม่ทำงานจากเดสก์ท็อป นอกจากนี้ฉันขอแนะนำให้ไม่ใช้⇧⌘Tเนื่องจากเป็นทางลัดทั่วไปสำหรับ "เปิดแท็บที่ปิดล่าสุดอีกครั้ง"
Charlie G

2

iTerm2 - อีกทางเลือกหนึ่งของ Terminal - มีตัวเลือกในการใช้ฮ็อตคีย์ทั้งระบบที่กำหนดค่าได้เพื่อแสดง / ซ่อน (ตั้งค่าเริ่มต้นเป็นAlt+ Spaceปิดใช้งานโดยค่าเริ่มต้น)


พูดถึง iTerm2 นี่คือสิ่งที่ฉันพยายามจะเปิดโดยใช้ Automator แต่ฉันได้รับ"script"ข้อผิดพลาดนั้นเมื่อฉันระบุtell application "iTerm2"แล้วคุณเปิดได้iTerm2อย่างไร?
ตำหนิ

1
@blamb ฉันมักจะเปิด iTerm2 ผ่านฮอตคีย์นี้ (ควรเปิดใช้งานในการตั้งค่า iTerm2 -> คีย์ -> ฮอตคีย์) ฉันไม่เคยลอง Automator
วิกเตอร์

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งโปรดดูคำตอบนี้: superuser.com/a/1259726
Benjamin R
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.