在 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>
VK_CHANGE_INPUTSOURCE_ENGLISH 定义在vkchangeinputsourcedef.xml。您可以从 EventViewer.app 查看输入源的 ID。| ModifierFlag::NONE
例如,如果没有,第一个设置也将适用于 option-command-E。请参阅源代码键代码值和预定义设置。