在Mac OS X中,有一个键盘快捷键可以在激活的输入源之间切换。
是否可以切换到特定语言?因此,如果您有3种输入法,则可能有3种快捷方式:Ctrl-1
英语,Ctrl-2
西班牙语和Ctrl-3
俄语。
在Mac OS X中,有一个键盘快捷键可以在激活的输入源之间切换。
是否可以切换到特定语言?因此,如果您有3种输入法,则可能有3种快捷方式:Ctrl-1
英语,Ctrl-2
西班牙语和Ctrl-3
俄语。
Answers:
我向您介绍最丑陋的“解决方案”:
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将它们包装在Services中,然后在System Preferences»Keyboard»Keyboard Shortcuts»Services中为它们分配键盘快捷键。
考虑到您要切换到的键盘布局的名称,我在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”。
一种选择是下载changeInput并为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
例如,第一设置也将适用于选项-命令-E。有关关键代码值和预定义设置,请参见源。
我知道这是一个老问题。但是即使在2016年底,我仍然没有找到一个简单而又不错的解决方案。因此,我制作了IMEShortcuts,在Sierra上工作。您可以为任何特定的输入方法分配自定义的快捷方式。请试一试。如果你们发现任何错误,我将很乐意为您提供帮助。
此外,铁锁(被称为KeyRemap4MacBook)是Mac很大键盘定制。但这有点复杂,目前在Sierra上已失效。如果您使用优胜美地或El Capitan,那将是另一个不错的选择。
我有另一个最令我满意的解决方案。KeyRemap4MacBook是允许您重新映射键盘按钮的应用程序。除其他事项外,它允许(并非完全)支持语言更改。因此,我们进行了一些自定义配置,以实现我想要的功能。
缺点:-第三方应用程序-目前仅提供有限的语言支持
优点:-从概念上讲,在UI上运行脚本要好一些
在AppleScript上,您仅需占用cmd +“ space”(或其他方式,您可以更改键盘源)。
以及您所需要的一切:
key code 49 using command down
49-AppleScript的ASCII中“空格”按钮的代码。
PS:不要忘记在系统偏好设置中为您的AppleScript实用程序提供访问权限。