影子输入法调试日记1

感谢僵尸大佬的帮助,大量请教僵尸大佬后终于几乎上手了影子.

决定每天发文一篇记录一下自己对影子的小修改,方便大家了解一些影子的修改,也方便自己查询

目前主要修改的点在快捷键的兼容性增强以及一些小功能的添加.

这个过程也是我自己阅读影子源码的过程

首先是我个人对于修改影子快捷键的一些想法

一些打开设置,词库工具之类的可以写在user里面,但是一些涉及输入框相关的按键还是在源码里面添加和修改把

防止出现麻烦

首先是增加了^space的上屏加enter搜索的快捷键,我喜欢一口气打完字搜索,省得自己再按enter了

 

^space::
Gosub, 上屏
		sleep 200
		SendInput, {enter}
Return

	Space::
	Gosub, 上屏
	Return
	上屏:
			If srf_symbol[srf_all_Input] {
			RegExMatch(jichu_for_select_Array[localpos,2],"i)\{[a-z]+\}",Match)
			SendInput(StrReplace(jichu_for_select_Array[localpos,2],Match), SendDelaymode)
			If (Match)
				SendInput, %Match%
			Gosub srf_value_off
		} Else {
			If (dwxg&&ToolTipStyle=2&&localpos=1&&(jichu_for_select_Array[1,-2]=""&&jichu_for_select_Array[1,0]~="pinyin"&&StrLen(jichu_for_select_Array[1,2])>1)){
				If Showdwxgtip()
					Return
			}
			select_for_num(localpos)
		}
	Return

另外我喜欢用shift来进行切换并且上屏编码,如果shift来切换辅助码就很不顺手,但是辅助码的这个按键也不能缺少

所以自己摘取了shift中关于辅助码的部分提到f1来按键,注意这么改要把f1可能占用的ahk脚本改一改否则无法成功按出来的

	; 输入的的时候按f1进行辅助码的切换
	F1::
	If RegExMatch(srf_all_Input_["tip"],"O).*[a-z][a-z]'([a-z]('?[a-z])?)$",fzm){
	tfzm:=StrReplace(fzm.Value[1],"'"), srf_all_Input:=RegExReplace(srf_all_Input, tfzm "$")
	jichu_for_select_Array:=pinyinmethod(srf_all_Input, Inputscheme), waitnum:=0
	Gosub houchuli
	Gosub srf_tooltip_fanye

	}
	Return

另外我因为使用capsez,占用的caps按键所以原有的caps功能全部放弃,注释,原来的esc作为清屏也不能使用,所以改了一个^backspace来代替

^BackSpace::
	If (!srf_inputing){
		SetYzLogo(srf_mode:=0, 1)
		SetTimer, ToolTipInputStatus, -10
	}
	Gosub srf_value_off
	If (srf_mode&&Escfg=3){
		SetYzLogo(srf_mode:=0, 1)
		SetTimer, ToolTipInputStatus, -10
	}
Return

然后就是再user中的自动执行段的修改,这一段首先感谢僵尸老哥的教导,提供了他的写法,参考后因为我只用双拼和全拼进行了一些改动,简化代码

首先是自动执行的部分,这里不能用::的快捷键,会自动执行,只能hotkey

Hotkey, ^F1, toggle_Pin_xh ; 热键切换到双拼全拼
Hotkey, ^+z, 造词
Hotkey, ^+x, app
Hotkey, ^F2, option
Hotkey,^f3, cikuManager
Goto, _init_

 

接下来的是注释了我不用的函数和sub,根据需求修改就可以了

app:
	appmanager()
Return


toggle_Pin_xh:
	(Inputscheme = "pinyin") ? Inputscheme:= "xhsp" : Inputscheme:= "pinyin"
	if (Inputscheme = "pinyin")
		ToolTip, 已切换到全拼
	Else
		ToolTip, 已切换到小鹤双拼
	SetTimer, RemoveToolTip, -3000
	goto pinyinlei
Return

;-------------------------------------------------------------------------------------------------------------------------------------------------
造词:
	Clipboard:=""
	SendInput, ^c
	sleep 300
	srf_create(RegExReplace(srf_all_Input,"i)[^a-z]"))
Return

pinyinlei:
	shurulei:="pinyin"
	GuiControl, 3:, _Inputscheme, %pinyinlist%
	If !(Inputscheme~="pinyin|sp$"){
		tvar:=""
		For Value,Key In ["decfre","fixedword","Imagine","Learning","Tofirst","Wordfrequency"] {
			tvar .= Yzimeini["Settings",key]
			GuiControl, 3:, %key%, % (Yzimeini["Settings",key]:=%key%:=(SubStr(Yzimeini["Settings","Settingsbak"], A_Index, 1)?1:0))
		}
		tvar .= Inputscheme, Inputscheme:=SubStr(Yzimeini["Settings","Settingsbak"], 7)?SubStr(Yzimeini["Settings","Settingsbak"], 7):"pinyin"
		Yzimeini["Settings","Settingsbak"]:=tvar
	}
	_Inputscheme:=pinyinec[Inputscheme]
	GuiControl, 3:ChooseString, _Inputscheme, %_Inputscheme%
	GuiControl, % "3:Disable" (Inputscheme="pinyin"), Showquanpin
	Loop 15
		GuiControl, % "3:Show" (A_Index<9), % "Button" (A_Index+15)
	GuiControl, 3:Text, Imagine, 联想
	GuiControl, 3:Text, Learning, 自学习
	Yzimeini.Settings["Inputscheme"]:=Inputscheme
return
RemoveToolTip:
	ToolTip
Return

; 指示条:
; 显示方案:=(Inputscheme ~= "xhsp") ? "小鹤" : "全拼"
; 中英模式 := (srf_mode = 0) ? "英" : "中"

; Gui, ZY:+Owner -Caption +AlwaysOnTop +HwndZYGui border -DPIScale
; Gui, ZY:font, s18, 微软雅黑
; Gui, ZY:Margin,6,4
; Gui, ZY:Add, Text, y0 v中英状态 g中英状态, %中英模式%
; Gui, ZY:Add, Text, x+5, |
; Gui, ZY:Add, Text, x+5 v输入方案 g输入方案, %显示方案%
; Gui, ZY:show
; return

; 中英状态:
; srf_mode := (srf_mode = 0) ? 1 : 0
; 中英模式 := (srf_mode = 0) ? "英" : "中"
; GuiControl, Text, 中英状态, %中英模式%
; SetYzLogo(srf_mode, 1)
; return

; 输入方案:
; PostMessage, 0xA1, 2, Ahk_id %ZYGui%
; if (A_GuiEvent = "DoubleClick")
; 	Inputscheme := (Inputscheme ~= "xhsp") ? "pinyin" : (Inputscheme ~= "pinyin") ? "wubi98" : "xhsp"
; 	显示方案 := (Inputscheme ~= "xhsp")? "小鹤" : (Inputscheme ~= "pinyin")? "全拼" : (Inputscheme ~= "wubi98") ? "五笔" : "其他"
; 	GuiControl, Text, 输入方案, %显示方案%
; Return

 

之前还用过ra群的火老哥的输入法自动切换的工具,有点想法移植部分思路到影子上

准备明天修改一下影子写入和读取ini的思路,之后出第二篇文章

 

给TA捐赠
共{{data.count}}人
人已捐赠
其他应用

影子输入法的一点小感想

2022-8-7 9:14:42

其他

群晖网络附属存储服务器部署和设置过程-第0版-2022年8月9日

2022-8-7 19:54:24

5 条回复 A文章作者 M管理员
  1. AHK中文社区

    加油!

  2. AHK中文社区
    1河许人给您打赏了¥2
  3. AHKK

    THANKS!

个人中心
购物车
优惠劵
有新私信 私信列表
搜索