Espanso 看起来挺强,但规则挺不好写的

  • 最简单的匹配规则也需要写两行,yaml 格式真的是又复杂又不好用
  • 不知道怎么让触发关键词能够同时兼容大消息,看起来只能开启大小写传递
  • 虽然支持正则表达式,但是限制的长度
  • 虽然用来匹配触发词大概不需要很长的正则表达式,但如果想用命名组,还是可能触及到长度上限的
  • 添加规则就要打开文件编辑,反正不太方便
  • 但是我自己写一个大概也做不到这么强,而且顺便吐槽 AHK 的热字符串问题也不少,没想的那么好用

下面丢几个自己写的匹配规则:

简易的规则添加表单

# 需要定义一个全局变量来读取剪切板,作为输出内容的默认值
# 我尝试将变量定义在表单条目中,但是失败了
global_vars:
  - name: clipb
    type: clipboard

matches:
  - trigger: "///add"
    form: |
      - trigger: "[[key]]"
        replace: "[[text]]"
    form_fields:
      text:
        multiline: true
        default: "{{clipb}}"

不过这个还得自己打开对应的配置文件,只不过是方便输入而已,当然也可以把表单做得更复杂一些。

运行 JS 脚本

我这里尝试的是运行行内脚本。

  - trigger: ":js"
    replace: "{{output}}"
    vars:
      - name: output
        type: script
        params:
          args:
            - node
            - -e
            - |
              console.log('来自 JavaScript 的问候');

有没有类似功能的软件,但是带gui的。最近正好有类似的需求,不过目前是把这个功能做到输入法里的,但是这些短语也不是非常常用,就导致设置的触发词容易忘。要是有个能实时显示过滤结果的gui就好了。

让AI写会不会简单点

Ditto,可分组,可过滤。

简单的规则他能写,但我自己写起来也不麻烦,就像上边那样,可以自己创建一个表单,稍微填一下就行了。

复杂的规则他搞不来,他会起飞,整一些根本不存在的字段出来

抱歉我不理解这个软件,输入法的自定义缩略短语,是不是可以作为一个低端的替代品?

如果是简单输入a替换成b,输入法也行,但是要加上各种逻辑判断、动态造词,输入法这方面就鶸很多。

1 个赞
  • 如果我想用一个自定义的格式来插入当前时间,很多输入法都是做不到的
  • 如果我想用一个自定义的格式来插入明天的日期,很多输入法是做不到的
  • 如果我想一次插入很多内容,比如 AI 的提示词,很多输入法是不支持这么长的自定义短语的
  • 如果我想以固定格式去输出某些内容,格式是固定的,但内容是随着情况变化的,一般输入法也不支持这样的操作
  • Espanso 还支持运行脚本,这后面的想象空间可就大了去了
1 个赞

你提的这些rime的话都能做到,就是交互性差一点。
另外试用了一下Espanso,感觉也不适合搞太复杂的替换。比如格式化字符串,我能想到的方法一是用正则,不过正则本身也有一定的限制,而且写起来不太优雅;二是用表单,可惜弹个窗这种方式我又不太喜欢;用外部脚本的话又搞复杂了。

你说的对,现在主要就是找不到一个优雅的解决方案