自动切换英文
每次切换到 sublime 的时候自动切换英文输入
因为系统默认环境配置的是中文输入法,而且很多时候其状态默认是中文输入,每次qq或者微信之类的通讯软件聊天后切换到ide码代码时,总要手动重新设置一下输入法而且还非常频繁,所以在想能不能每次切换回ide的时候同时切换成英文呢。
目前发现一个方法,仅限于sublime text,或者可以调用py插件的ide环境
1、确保系统内存在英文语言,对应的其他语言代码可以到这里
- 首先系统必须存在英文语言和中文语言,
2、标准动作,创建一个新插件
3、上代码
import sys, sublime_plugin
# 插件名称
PLUGIN_NAME = "testt_switch_language"
# 为了引入插件目录下的 pywin32模块 添加插件目录到环境变量
sys.path.append(os.path.join(sublime.packages_path(),PLUGIN_NAME))
# 引入模块
import Pywin32.setup
import win32api, win32gui
from win32con import WM_INPUTLANGCHANGEREQUEST
# 对应的语言代码
LANG = { "zh": 0x0804, "en": 0x0409 }
# 切换系统语言函数
def change_language(lang:str="en") -> bool:
global LANG
# 获取前景窗口句柄
HWND = win32gui.GetForegroundWindow()
# 获取语言代码
LANGUAGE_CODE = LANG[lang.lower()] or LANG["en"]
res = win32api.PostMessage(
HWND,
WM_INPUTLANGCHANGEREQUEST,
0,
LANGUAGE_CODE
)
return res
# 设置触发条件在每次切换视图的时候
class TesttSwicthLanguageEventer(sublime_plugin.EventListener):
def on_activated_async(self, view):
"""
@Description 每当视图切换,都执行切换一次语言
"""
change_language('en')