เปิดหน้าต่างเทอร์มินัลใหม่ในพื้นที่ปัจจุบันโดยไม่คำนึงถึงเทอร์มินัลเปิดอื่นในพื้นที่อื่น


14

เมื่อใช้ Spaces บน Mac OS X พยายามเปิดเทอร์มินัลอินสแตนซ์ใหม่ส่งผลให้มีการดึงโฟกัสไปยังพื้นที่ใดก็ตามที่มีหน้าต่างเทอร์มินัลที่เข้าถึงล่าสุด ด้วย Finder ฉันสามารถคลิกที่เดสก์ท็อปแล้วใช้- Nเพื่อสร้างหน้าต่าง Finder ใหม่ สิ่งที่ฉันกำลังมองหาคือวิธีการทำฟังก์ชั่นเดียวกันกับหน้าต่าง Terminal

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

ขอบคุณ


ฉันชอบคำถามนี้ แต่คิดว่าควรจะเป็นกับผู้ใช้ระดับสูง

คำตอบ:


4

คุณสามารถสร้างบริการใหม่โดยใช้ automator (จากโฟลเดอร์แอปพลิเคชัน) ที่ด้านบนของหน้าต่างอัตโนมัติให้ป้อน: บริการได้รับ 'ไม่มีอินพุต' ใน 'แอปพลิเคชันใด ๆ ' จากนั้นในเวิร์กโฟลว์ให้เพิ่ม 'เรียกใช้ applescript' ทำให้ applescript มีดังต่อไปนี้:

on run {input, parameters}

    tell application "Terminal"
        do script ""
        activate
    end tell

    return input
end run

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

บันทึกบริการเป็น 'Open Terminal' หรือชื่ออะไรก็ได้ที่คุณชอบ ตอนนี้มันควรจะปรากฏในเมนูบริการของคุณ

จากนั้นหากคุณต้องการเพิ่มแป้นพิมพ์ลัดคุณเพียงแค่ไปที่การตั้งค่าระบบ -> แป้นพิมพ์ -> แท็บแป้นพิมพ์ลัดเลือกบริการในเมนูด้านซ้ายและค้นหาบริการใหม่ของคุณ (อาจใกล้ด้านล่าง) เพียงคลิกที่ช่องว่างทางด้านขวาของชื่อบริการของคุณและกำหนดแป้นพิมพ์ลัดที่คุณต้องการและเฮ้โอมเพี้ยง! มันควรจะทำงานทั้งหมด


1
ควรสังเกตว่าสิ่งนี้มีการใช้งานตามที่ร้องขอจริง ๆ ในฐานะที่เป็นการแก้ไขเล็กน้อยคุณจำเป็นต้องมีdo shell script " "บรรทัดเพื่อเปิดหน้าต่างใหม่ในพื้นที่ปัจจุบัน แต่ไม่จำเป็นต้องให้เชลล์สคริปต์เป็นพื้นที่ว่าง หากเป็นพื้นที่ว่างจะทำให้เทอร์มินัลเรียกใช้พื้นที่ว่างเป็นคำสั่งซึ่งนำไปสู่ความล่าช้าในการดำเนินการและบรรทัดที่ไม่เกี่ยวข้องในหน้าต่างเทอร์มินัลใหม่ เพียงแค่ทำให้มันเป็นสตริงที่ว่างเปล่าโดยสมบูรณ์: do shell script ""จากนั้นจะเปิดหน้าต่างเทอร์มินัลใหม่ แต่ไม่ออกคำสั่งใด ๆ ก็ตาม
ดาโกต้า

ใช่คุณพูดถูก ฉันได้อัพเดตคำตอบเพื่อลบช่องว่างระหว่างคำพูด อย่างไรก็ตามเพื่อให้สามารถใช้งานได้จำเป็นต้องมีdo script ""และไม่ใช่do shell script ""ตามที่ @dakota แนะนำ
tmdavison

3

ในการกำหนดแอปพลิเคชันใน System Preferences -> Spaces ให้ตั้ง Terminal เป็น "Every Space" หรือลบรายการ จากนั้นไม่น่าจะมีปัญหาในการเปิดหน้าต่างเทอร์มินัลใหม่ทุกที่ที่คุณต้องการเช่นโดยคลิกที่เมนูบริบทของท่าเรือ "หน้าต่างใหม่" (ใช้ได้แม้ว่าคุณจะมี "เมื่อสลับไปยังแอปให้สลับไปยังพื้นที่ว่าง เปิดใช้งานตัวเลือกแอป ")


ประโยคแรกนั้นไม่เกี่ยวข้องเท่าที่ฉันจะบอกได้ การตั้งค่าเป็น "Every Space" ยังคงเปลี่ยน Space เมื่อเปิดหน้าต่างใหม่ผ่านทาง AppleScript หรือปุ่มลัดและเมนูบริบท Dock ไม่เคยเปลี่ยนพื้นที่โดยไม่คำนึงถึงการตั้งค่านี้ สิ่งหนึ่งที่น่าสนใจในคำตอบนี้คือตัวเลือก "เมื่อสลับไปยังแอปให้สลับไปที่ที่ว่างพร้อมหน้าต่างที่เปิดจากแอพนั้น" ปิดการใช้งานมัน "แก้ไข" กรณี keybinding / AppleScript แต่น่าเสียดายที่ "แบ่ง" แท็บคำสั่ง หากมีเพียง OS-X เท่านั้นที่มีการเชื่อมโยงคีย์ "วนรอบหน้าต่าง" ที่เหมาะสมซึ่งสามารถทำงานได้กับหน้าต่างทั้งหมดในแอปทั้งหมดในทุกพื้นที่
Laurence Gonsalves

@ LaurenceGonsalves คุณสามารถวนรอบหน้าต่างเทอร์มินัลทั้งหมดในช่องว่างทั้งหมดด้วยลูกศรสั่งซ้าย / ขวา มันช่วยได้ไหม
Chris หน้า

@Chris นั่นเป็นชุดทางลัดที่น่าสนใจขอบคุณ แต่พวกเขาไม่สามารถแก้ปัญหาที่ฉันพูดถึงได้ หากการตั้งค่า "เมื่อสลับเป็นแอป ... " ถูกปิดใช้งานและคุณอยู่ในพื้นที่ที่ไม่มีหน้าต่างเทอร์มินัลและคุณสั่งแท็บเป็น "เทอร์มินัล" จะไม่เปลี่ยนเป็นพื้นที่ที่มีหน้าต่างเทอร์มินัล command-backtick จะไม่ทำอะไรเลย น่าแปลกที่ลูกศรซ้าย / ขวาของคำสั่งไม่ทำอะไรเลยในกรณีนี้ (อย่างน้อยใน Snow Leopard) คีย์เหล่านั้นจะวนไปมาระหว่างหน้าต่างข้ามช่องว่างหากหน้าต่างในแอปพลิเคชันปัจจุบันมีโฟกัส แต่หากไม่มีหน้าต่างใดที่โฟกัสอยู่พวกเขาจะไม่ทำอะไรเลย
Laurence Gonsalves

2
tell application "Terminal"
    do script ""
    activate
end tell

หากต้องการทำให้การทำงานภายใต้ Lion ให้พิมพ์ข้างต้นลงในหน้าต่าง AppleScript ใหม่และบันทึกไว้ เรียกใช้สคริปต์ผ่านตัวเรียกใช้งานคำสั่งเช่น QuickSilver หรือกำหนดให้กับแป้นพิมพ์ลัด สิ่งนี้จะใช้ได้แม้ว่าคุณจะตั้งค่า "เมื่อสลับเป็นแอปพลิเคชันให้เปลี่ยนเป็นพื้นที่ที่มีหน้าต่างแบบเปิดสำหรับแอปพลิเคชัน" เปิดใช้งานในการควบคุมภารกิจ เคล็ดลับคือการทำคำสั่งเปิดใช้งานล่าสุดแทนที่จะอยู่ที่จุดเริ่มต้น


หรือสร้างบริการโดยใช้ Automator และเปิดใช้งานโดยใช้แป้นพิมพ์ลัดในการตั้งค่าระบบ: apple.stackexchange.com/a/13655/36722
Dakota

0

หากคุณใช้เมนูท่าเรือเพื่อเปิดหน้าต่างใหม่หน้าต่างจะเปิดขึ้นในพื้นที่ปัจจุบัน


มีวิธีการทำเช่นนี้จากแป้นพิมพ์หรือไม่?
Laurence Gonsalves

Control-F3 คือ "ย้ายโฟกัสไปยัง Dock" คุณสามารถใช้ปุ่มลูกศรเพื่อนำทางผ่านเมนูไอคอน Dock ของ Terminal คุณสามารถพิมพ์เพื่อเลือกรายการเมนูตามชื่อเช่นพิมพ์ "N" หรือ "New W" ดูการตั้งค่าระบบ> คีย์บอร์ด> แป้นพิมพ์ลัด> คีย์บอร์ด & การป้อนข้อความเพื่อดูแป้นพิมพ์ลัดทั้งหมดสำหรับการเลือกและการนำทางผ่าน UI
Chris หน้า

เป็นไปได้ที่จะทำเช่นนี้ คุณต้องสร้างบริการพิเศษโดยใช้ Automator ซึ่งคุณสามารถผูกกับแป้นพิมพ์ลัดได้จากการตั้งค่าระบบ: apple.stackexchange.com/a/13655/36722
Dakota

0

คุณสามารถปิดใช้งานการสลับช่องว่าง OSX โดยอัตโนมัติเมื่อคุณสลับแอปพลิเคชันโดยใช้คำสั่งต่อไปนี้:

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

ใช้งานได้กับ 10.6.8


มีการตั้งค่า GUI สำหรับสิ่งนี้เช่นกันมันอยู่ใน "การควบคุมภารกิจ"
SilverWolf - Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.