Skip to main content

自动切换英文

每次切换到 sublime 的时候自动切换英文输入

因为系统默认环境配置的是中文输入法,而且很多时候其状态默认是中文输入,每次qq或者微信之类的通讯软件聊天后切换到ide码代码时,总要手动重新设置一下输入法而且还非常频繁,所以在想能不能每次切换回ide的时候同时切换成英文呢。

目前发现一个方法,仅限于sublime text,或者可以调用py插件的ide环境

1、确保系统内存在英文语言,对应的其他语言代码可以到这里

  • 首先系统必须存在英文语言和中文语言,

image-20211012211331700

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')

所有系统语言代码

官方资料

参考资料