Autokey开发问题:如何修改engine.create_phrase生成短语的缩写属性及调试脚本?
修改Autokey短语对象的缩写属性(backspace/ignoreCase等)
核心解决方法
engine.create_phrase()返回的是Phrase类实例,直接访问其内部的abbreviation嵌套对象,就能修改backspace、ignoreCase这类缩写配置属性——Autokey的所有缩写规则都存在这个子对象里。
具体代码示例
# 沿用原示例脚本的基础逻辑:获取选中文本、输入缩写 selected_text = clipboard.get_selection() if not selected_text: dialog.info_dialog("Error", "No text selected!") exit() abbreviation = dialog.input_dialog("Create Abbreviation", "Enter the abbreviation trigger:") if not abbreviation: exit() # 创建短语并获取实例 new_phrase = engine.create_phrase(abbreviation, selected_text) # 修改缩写的关键属性 # 设置是否删除触发的缩写文本 new_phrase.abbreviation.backspace = False # 设置匹配缩写时忽略大小写 new_phrase.abbreviation.ignore_case = True # 设置触发短语的结束字符(比如空格、回车) new_phrase.abbreviation.trigger_characters = [" ", "\n"] # 设置输入缩写后立即触发(无需等待结束字符) new_phrase.abbreviation.immediate = True # 确保缩写处于启用状态 new_phrase.abbreviation.enabled = True # 保存短语到默认目录,让Autokey加载生效 engine.save_phrase(new_phrase)
关于get_description()无效的说明
get_description()仅用于返回短语的用户备注信息,和缩写配置完全无关。要查看短语对象的可操作属性,可以用dir()函数结合弹窗打印:
# 打印短语对象的所有属性 props = dir(new_phrase) dialog.info_dialog("Phrase Properties", "\n".join(props)) # 打印缩写子对象的所有属性 abbrev_props = dir(new_phrase.abbreviation) dialog.info_dialog("Abbreviation Properties", "\n".join(abbrev_props))
这是Autokey脚本无调试环境时,快速查看对象结构的实用技巧。
内容的提问来源于stack exchange,提问作者stib
相关产品推荐
相关产品推荐

