在Mac OS X中,有一個鍵盤快速鍵可以切換之間啟動的輸入來源。
是否可以切換到特定的語言?因此,如果您有 3 種輸入法,則可以有 3 個捷徑:Ctrl-1
英語、Ctrl-2
西班牙語和Ctrl-3
俄語。
答案1
我向您展示最醜陋的“解決方案”:
- 啟用對輔助設備的支持系統偏好設定 » 通用訪問,
- 並在功能表列中顯示輸入來源選單系統偏好設定 » 語言和文字。
- 確保
Ctrl-F8
已定義快捷方式將焦點移至狀態選單在系統偏好設定 » 鍵盤 » 鍵盤快速鍵 » 鍵盤與文字輸入。 - 確保「輸入來源」選單是最左側的選單項,可以按住拖曳來移動
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
,請用鍵碼替換這裡。您也可以透過插入一些內容來將「輸入來源」選單從最左邊的位置移動右箭頭按鍵。
根據需要呼叫腳本,例如使用應用程式啟動器(Quicksilver、Launchbar 等),或使用 Automator 將它們包裝在服務中,並在中為它們分配鍵盤快捷鍵系統偏好設定 » 鍵盤 » 鍵盤快速鍵 » 服務。
答案2
如果您知道要切換到的鍵盤佈局的名稱,我在 AppleScript 中想出了一個更好的解決方案。建立一個像這樣的函數:
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”。
答案3
一種選擇是下載改變輸入和為 shell 指令指派快捷方式喜歡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。您可以從 EventViewer.app 中查看輸入來源的 ID。例如,如果沒有,| ModifierFlag::NONE
第一個設定也適用於 option-command-E。請參閱來源鍵碼值和預定義設定。