如何像在 OS X 中一样在 Windows 10 上切换语言?

Boy*_*dev 14 keyboard-shortcuts input-languages windows-10

当您有 3 个以上的键盘输入源(语言)并按Cmd+键时,OS X 具有这个非常好的功能,您Space只在其中两个之间切换。

如果您想切换到另一种(第三种)语言,您只需按住Cmd并按下Space即可从可用输入源列表中进行选择。

如何在 Windows 10 上拥有类似的功能?我有 3 个输入源并循环遍历它们以找到我需要的一个,这真的很烦人。

har*_*ymc 7

可以在 Windows 10 中为一种语言分配键盘快捷键:

  1. 转到控制面板 -> 时钟、语言和区域 -> 语言 -> 高级设置

  2. 切换输入法下,单击更改语言栏热键,然后单击您的语言,最后单击更改键序列

  3. 这将显示一个对话框,您可以在其中为该语言指定快捷键:

图片

由于上述快捷键非常有限,因此可以使用例如AutoHotkey将其更改为任何其他键盘组合。一旦你学习了 AutoHotkey,就可以很容易地重现 OSX 的确切行为(你也可以在他们的论坛上寻求帮助)。

许多 AutoHotkey 脚本可以在 Internet 上找到,并且可以定制它们以满足任何需要。

以下示例脚本旨在改进Alt+Shift作为当前窗口英语和俄语键盘之间切换的功能 :

; This should be replaced by whatever your native language is. See 
; http://msdn.microsoft.com/en-us/library/dd318693%28v=vs.85%29.aspx
; for the language identifiers list.
ru := DllCall("LoadKeyboardLayout", "Str", "00000419", "Int", 1)
en := DllCall("LoadKeyboardLayout", "Str", "00000409", "Int", 1)

!Shift::
w := DllCall("GetForegroundWindow")
pid := DllCall("GetWindowThreadProcessId", "UInt", w, "Ptr", 0)
l := DllCall("GetKeyboardLayout", "UInt", pid)
if (l = en)
{
    PostMessage 0x50, 0, %ru%,, A
}
else
{
    PostMessage 0x50, 0, %en%,, A
}
Run Code Online (Sandbox Code Playgroud)

以下是一些线程提供用于更改具有各种功能的键盘布局的脚本:

这里有一些免费产品也可以做到这一点:

  • keyla - 可以定义键盘快捷键或使用任务栏图标
  • Recaps - 使用 CapsLock 切换键盘语言


Ian*_*Ian 7

如果你想确切的行为在MacOS上,而无需配置,你可以使用Ctrl+ Win+Space两个最近使用过的语言之间切换,就像你得到什么Cmd+ Space

要切换到其他输入法,例如当您按两次Cmd+ 时Space,只需使用Win+ Space