สลับไปยังแหล่งอินพุตเฉพาะ


23

ใน Mac OS X จะมีแป้นพิมพ์ลัดเพื่อสลับระหว่างแหล่งอินพุตที่เปิดใช้งาน

ข้อความแสดงแทน

มันเป็นไปได้ที่จะเปลี่ยนไปใช้ภาษาที่เฉพาะเจาะจงหรือไม่? ดังนั้นหากคุณมีวิธีการป้อนข้อมูล 3 วิธีคุณสามารถมีทางลัดได้ 3 วิธีคือCtrl-1ภาษาอังกฤษภาษาCtrl-2สเปนและCtrl-3ภาษารัสเซีย


รูปแบบแป้นพิมพ์และภาษาอินเทอร์เฟซเป็นอิสระ และเนื่องจากภาษาอินเทอร์เฟซใช้เฉพาะหลังจากรีสตาร์ทโปรแกรมสิ่งที่คุณได้รับจากทางลัดจะถูกทำให้ไร้ผลโดยข้อกำหนดในการรีสตาร์ทแอปพลิเคชันต่อไป
Daniel Beck

ฉันไม่สนใจที่จะเปลี่ยนภาษาของส่วนต่อประสาน สนใจเฉพาะภาษาป้อนเข้าเท่านั้น
Nikem

ฉันปรับปรุงและทำให้คำถามของคุณชัดเจนขึ้น โปรดย้อนกลับถ้าคุณคิดว่าฉันทำอะไรผิด (ฉันใหม่กับการทำเช่นนี้)
Daniel Beck

คำตอบ:


7

ฉันเสนอให้คุณ "แก้ปัญหา" ที่น่าเกลียดที่สุดที่เป็นไปได้:

  • เปิดใช้การสนับสนุนอุปกรณ์อำนวยความสะดวกในการตั้งค่าระบบ»เข้าถึงสากล ,
  • และการแสดงแหล่งที่มาของการป้อนข้อมูลที่เมนูในแถบเมนูในการตั้งค่าระบบ»ภาษาและข้อความ
  • ตรวจสอบให้แน่ใจลัดCtrl-F8ถูกกำหนดไว้สำหรับการย้ายการโฟกัสไปยังเมนูสถานะในการตั้งค่าระบบ» Keyboard »แป้นพิมพ์ลัด»แป้นพิมพ์และป้อนข้อความ
  • ตรวจสอบให้แน่ใจว่าเมนู Input Sources เป็นรายการเมนูด้านซ้ายสุดที่สามารถเคลื่อนย้ายได้โดยการลากในขณะที่กดค้างCmdไว้

ใช้AppleScript Editorและเขียนสคริปต์สามตัวแต่ละสคริปต์มีรหัสต่อไปนี้:

tell application "System Events"
    key code 100 using control down # press Ctrl-F8
    delay 0.5 # wait a bit, UI might be slow
    key code 125 # press down to open the menu
    keystroke "german" # name of your desired language, in my case tested using German
    key code 36 # press enter
end tell

บันทึกหนึ่งครั้งสำหรับแต่ละภาษาเปลี่ยนชื่อภาษา ถ้าคุณต้องการที่จะกดปุ่มที่แตกต่างกันหรือสิ่งที่แตกต่างจากการกำหนดCtrl-F8แทนด้วยรหัสที่สำคัญที่นี่ นอกจากนี้คุณยังสามารถย้ายเมนู Input Sources จากตำแหน่งซ้ายสุดโดยการกดปุ่มลูกศรขวาสองสามอัน

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


1
@ Nikem มันทำงานอย่างไร
Daniel Beck

1
ใช่มันใช้งานได้
Nikem

1
อันดาเนียล แต่ผมได้เลือกวิธีอื่นขอขอบคุณ แต่อย่างไรก็ตามสำหรับการแนะนำให้ฉันไป Action Script และบริการ :)
Nikem

@ Nikem คุณยินดีต้อนรับ โปรดโหวตคำตอบของฉันโดยคลิกที่ "สามเหลี่ยมลูกศรขึ้น" ถัดจากคำตอบถ้าคุณพบว่าคำตอบนี้มีประโยชน์ นอกจากนี้คุณยังสามารถยอมรับคำตอบ (ระบุว่าเป็นคำตอบที่คุณชอบที่สุดและพิจารณาแก้ไขปัญหาของคุณ) โดยคลิกที่เครื่องหมายถูกถัดจากคำตอบ ยังไงก็ตาม ActionScript คือ Adobe นี่คือ AppleScript
Daniel Beck

@Daniel ที่จริงแล้วฉันไม่รู้คำตอบที่แนะนำ ผมได้เลือกฉัน แต่คุณมีมากขึ้นใช้งานกันอย่างแพร่หลาย ...
Nikem

12

ฉันคิดวิธีแก้ปัญหาที่ดีกว่าใน AppleScript ให้คุณรู้ชื่อของ Keyboard Layout ที่คุณต้องการเปลี่ยน สร้างฟังก์ชั่นเช่นนี้:

on changeKeyboardLayout(layoutName)
 tell application "System Events" to tell process "SystemUIServer"
   tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)}
 end tell
end changeKeyboardLayout

แล้วเรียกมันโดย

 changeKeyboardLayout("English")
 changeKeyboardLayout("German")

โปรดทราบว่าชื่อของเลย์เอาต์แป้นพิมพ์เป็นภาษาท้องถิ่นเช่นในระบบเยอรมันตัวอย่างข้างต้นจะต้องเรียก "Englisch" และ "Deutsch"


ดีกว่าของฉันอย่างแน่นอน ฉันควรเรียนรู้ AppleScript ของฉันอย่างถูกต้อง
Daniel Beck

สิ่งนี้ทำงานได้อย่างสมบูรณ์เป็นเวลาหลายปี แต่ด้วย Catalina ดูเหมือนว่า "การป้อนข้อความ" ไม่สามารถเข้าถึงได้ในแถบเมนูอีกต่อไป
Frank Mittelbach

6

ทางเลือกหนึ่งที่จะดาวน์โหลดchangeInputและทางลัดกำหนดคำสั่งเปลือกchangeInput U.S.เช่น

คุณยังสามารถใช้ KeyRemap4MacBook:

<?xml version="1.0"?>
<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
    <inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>change_inputsources</name>
    <identifier>change_inputsources</identifier>
    <autogen>__KeyToKey__ KeyCode::E, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH</autogen>
    <autogen>__KeyToKey__ KeyCode::H, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
  </item>
</root>

ดูเอกสาร private.xml

VK_CHANGE_INPUTSOURCE_ENGLISH ถูกกำหนดไว้ในvkchangeinputsourcedef.xml คุณสามารถดู ID ของแหล่งอินพุตได้จาก EventViewer.app หากไม่มี| ModifierFlag::NONEตัวอย่างการตั้งค่าแรกก็จะนำไปใช้กับ option-command-E ดูแหล่งที่มาสำหรับค่ารหัสที่สำคัญและการตั้งค่าที่กำหนดไว้ล่วงหน้า


4

ฉันรู้ว่ามันเป็นคำถามเก่า แต่ถึงแม้ในตอนท้ายของปี 2559 ฉันยังไม่พบวิธีแก้ปัญหาที่ง่ายและดี ดังนั้นฉันทำIMEShortcuts ใช้งานได้กับ Sierra คุณสามารถกำหนดทางลัดที่กำหนดเองสำหรับวิธีการป้อนข้อมูลเฉพาะใด ๆ กรุณาให้มันยิง และถ้าพวกคุณพบข้อบกพร่องใด ๆ ฉันยินดีที่จะช่วย

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


ขอบคุณสำหรับ IMEShortcuts! มันเป็นเรื่องดีมาก. ฉันยินดีจ่าย $ 5 หรือมากกว่านั้นถ้าคุณเพิ่มไอคอนลงในแถบเมนูเพื่อแสดงภาษาที่ใช้งาน (ดังนั้นฉันไม่จำเป็นต้องมีทั้ง IMEshortcuts และไอคอนแอพใน menubar ของฉันเพิ่มพื้นที่ว่าง) ฉันต้องการปรับแต่งไอคอนที่ใช้เช่นฉันต้องการใช้อินพุตภาษาฝรั่งเศสแบบแคนาดาเพราะใกล้เคียงกับ US QWERTY แต่ฉันต้องการเห็นธงภาษาฝรั่งเศสเพราะธงแคนาดาไม่ได้เป็นสัญลักษณ์ "ภาษาฝรั่งเศส" เป็น ผม. สิ่งเหล่านั้นจะทำให้มันยอดเยี่ยม!
iconoclast

คำเตือน: หากคุณยังไม่ได้ดาวน์โหลด IMEShortcuts ในอดีต (ก่อนที่การจดทะเบียนโดเมนจะหมดอายุและถูกแทนที่ด้วยหน้าเว็บที่มีมัลแวร์ส่วนขยายของโครเมี่ยม) อย่าคว้าอะไรจาก rockcell.com จนกว่าจะได้รับการแก้ไข
ecmanaut

1

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

ข้อด้อย: - แอปพลิเคชันบุคคลที่สาม - รองรับเฉพาะภาษา จำกัด เท่านั้นในตอนนี้

ข้อดี: - แนวคิดดีขึ้นเล็กน้อยว่าสคริปต์ที่เรียกใช้บน UI


ฉันไม่พบสิ่งใดที่เกี่ยวข้องกับการใช้งานอินพุตแหล่งข้อมูลที่ยืดหยุ่นบนเว็บไซต์มีเพียงการกระทำบางอย่างที่เกี่ยวข้องกับรัสเซีย / อังกฤษ คุณสามารถทำอย่างละเอียด?
Daniel Beck

มันไม่ยืดหยุ่น มันเพิ่งเกิดขึ้นที่รองรับการเปลี่ยนเป็นภาษาอังกฤษและรัสเซีย (และตอนนี้เอสโตเนีย) ซึ่งเป็นภาษาที่ฉันต้องการ และช่วยให้คุณแมปคีย์ผสมเองกับการกระทำเหล่านั้น เปลี่ยนเป็นภาษาในกรณีของฉัน
Nikem

ฉันมีเวลายากในการหาวิธีตั้งค่านี้กับ Karabiner
Ivan Balashov

1

ใน AppleScript คุณต้องใช้เวลา cmd + "space" (หรืออย่างอื่นเท่านั้นสิ่งที่คุณเปลี่ยนแหล่งแป้นพิมพ์)

และทุกสิ่งที่คุณต้องการ:

    key code 49 using command down

49 - รหัสของปุ่ม 'space' ใน ASCII สำหรับ AppleScript

PS: อย่าลืมเข้าถึงยูทิลิตี้ AppleScript ของคุณใน System Preferences


1

พบkawa - แอพที่ง่ายมากที่จะตอบสนองความต้องการของคุณ ตั้งค่าช็อตคัทเพื่อสลับไปยังแหล่งสัญญาณเข้าที่ต้องการโดยตรง


1
ยินดีต้อนรับสู่ Super User โปรดอ่านวิธีแนะนำซอฟต์แวร์จากนั้นแก้ไขคำตอบของคุณเพื่อรวมข้อมูลที่จำเป็นขั้นต่ำ (รายการที่เป็นตัวหนา ) อย่างน้อย โพสต์ที่ไม่มีข้อมูลนี้อาจถูกลบ ขอบคุณสำหรับการมีส่วนร่วม
ฉันพูดว่า Reinstate Monica

0

ลิงค์นี้มีวิดีโอเกี่ยวกับวิธีการทำ มี hotcake ที่มี "command + space" อยู่แล้ว แต่ฮอตสปอตฮอตคีย์นั้นก็คือ "command + space" สปอตไลต์ค้างเหนือปุ่มลัดดังนั้นแป้นภาษาจึงไม่เกิดขึ้น วิดีโอในลิงค์จะแสดงวิธีเปลี่ยนปุ่มลัดเพื่อให้คุณสามารถสลับปุ่มลัดได้

โชคดี,


1
เขารู้วิธีสลับไปมาระหว่างภาษาต่าง ๆ เขาต้องการเปลี่ยนเป็นภาษาใดภาษาหนึ่งเนื่องจากเขาอาจเปิดใช้งานมากกว่า 2 รายการ
Daniel Beck

ใช่อย่างที่ Daniel พูด ฉันมีภาษาป้อนเข้า 3 ภาษาและจำเป็นต้องเลือกภาษาที่ต้องการ
Nikem

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