rime / home

Rime::Home is home to Rime users and developers
https://rime.im
4.23k stars 230 forks source link

求助:email模式问题,怎么匹配 #427

Open ryan00zou opened 5 years ago

ryan00zou commented 5 years ago

在输入含有短横线和下划线的邮箱时无法自动识别成email模式 比如jo-hn@qq.com

请问应该如何设置才能像网址www.一样自动识别,谢谢。

Ace-Who commented 5 years ago
recognizer/patterns/email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"
ryan00zou commented 5 years ago
recognizer/patterns/email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"

default.yaml里的这个配置没有动,在schema.yaml里写了也不行,按短横线时 - 没反映

recognizer:
  import_preset: default
  patterns:
    #uppercase: "[A-Z][-_+.'0-9A-Za-z]*$"
    uppercase: "" #中文状态大写锁定直接上屏
    reverse_lookup: "[a-z`]*`+[a-z`]*"
    punct: ""
    email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"
Ace-Who commented 5 years ago

不用的 pattern 注释掉,不要写成 uppercase: "" 这样。

Ace-Who commented 5 years ago

应该还需要修改 punctuator/half_shapepunctuator/full_shape-_ 的定义。另外 -. 都是候选翻页键,所以 email 这个模式和打字选字是容易冲突的。

ryan00zou commented 5 years ago

https://github.com/rime/home/issues/427#issuecomment-531646705 试了还是不行,还是放弃了😂😂😂

ghost commented 4 years ago

在输入含有短横线和下划线的邮箱时无法自动识别成 email 模式 比如 jo-hn@qq.com

请问应该如何设置才能像网址 www. 一样自动识别,谢谢。

输入邮箱地址吗?我是用 my_symbols.yaml 搞定的

'/emgg': [ gg@gmail.com ]
'/nlxl': [ 李小龙, 18888888888, QQ:88888888, Email:lxl@lxl.com, Address:中国香港 ]

输入 /emgg 后就可以像选词一样了,相当于 iosText Replacement

sci-42ver commented 1 year ago

1- 可以问下 这个'recognizer/patterns'是只能 补全 punct 里的东西吗( 基于 symbols.yaml ), 如果不是的, 那么 url是怎么识别的呀

看了官方的wiki说是基于matcher识别的,我在segmenter 里面已经添加了,但是没有效果(可以看一下你实现后相应的build文件夹里的yaml是什么样的么),看了librime代码 没太看懂matcher如何和email联系起来的.

2- 通过wiki提到的雪斋文档,搜了一下github,看到这个仓库里的 jyutping_lookup 是自己定义的,便自己clone了一份,跑下看看的,然后懂了

搜索email不需要多层转换,所以上述仓库里 cangjie6.schema.yaml reverse_lookup 相关的可以都去掉,然后改改能实现 ‘字母->email‘ 的映射(不知道上面url是不是这样实现的? 感觉应该一样,既然都放在了recognizer下面)

但是有个问题是 我clone下来后,cangjie6的默认查码后无法按数字上屏,之前看wiki说是selector顺序问题(放在了recognizer前面,可能造成某些带数字编码的词典不能用, 不知道有没有更好的办法,虚心请教), 改下ok了(改recognizer 的regex应该也可以)

简化后的recognizer, 希望可以对你有帮助

3- 变通办法

...
'punctuator/half_shape/`':
    - '佛振 <chen.sst@gmail.com>'
    - 'http://rime.github.io'

这个 在我的 电脑上没有效果;以下为我的相关版本

$ sudo apt-cache policy ibus-rime
ibus-rime:
  Installed: 1.5.0-1
  Candidate: 1.5.0-1
  Version table:
 *** 1.5.0-1 500
...
$ ibus version
IBus 1.5.26

但是

"`": ["`","‘",foo@foo.com]

有效果, 可能语法变了