iX8NEGGn
201 天前
楼上很多人没明白 OP 的需求,解释下,因为输入法中英文状态默认由应用自己维护,应用切来切去后就忘了当前状态,或即使设置为全局状态,一段时间后也会忘记,打字前总得看下右下角输入法状态,很烦。
推荐几个我用过的解决方法:
1. 根据当前是中文还是英文状态,打字光标处显示两种不同颜色的小圆点,推荐一个软件,叫 RedDot ,体验还不错,但它不开源,有个开源的类似软件叫 language-indicator ,但各种应用的光标位置识别没有 RedDot 准。
2. 设置两个不同的快捷键,第一个始终是英文,另一个始终是中文,这样无需理会状态,有现成软件,比如 KBLAutoSwitch ,也可以自己用 Autohotkey 写几十行代码搞定。
3. 有些输入法支持切换应用后,始终是某一状态,如果有需要自己再切为另一个状态,比如楼上提到的小狼毫?
顺便给下我在用的 Autohotkey 代码,应该支持绝大部分输入法:
#Requires AutoHotkey v2.0
SwithInputMethodTo(method := "en")
{
DetectHiddenWindows(true)
hWnd := WinGetID("A")
hIME := DllCall("imm32\ImmGetDefaultIMEWnd", "UInt", hWnd, "UInt")
id := 0
if(method == "zh")
{
id := 1025
}
SendMessage(0x283, 0x002, id, , "ahk_id " hIME)
}
;CapsLock v ,切换到输入法英文状态
CapsLock & v::
{
SwithInputMethodTo("en")
}
;CapsLock n 切换到输入法中文状态
CapsLock & n::
{
SwithInputMethodTo("zh")
}