Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
自動識別西文及數字組成的用戶名
# default.custom.yaml
# 全局範圍識別輸入串爲 rime + 任意數字序列,以及形如 rimeime-1.2.3 的常用西文短語
# 也可將本組 patch 寫入 <輸入方案ID>.custom.yaml 使這組規則僅在一款輸入方案中有效
#
# 第一例,輸入 rime 之後,再輸入任意一個數字,則立即識別爲西文輸入
# 再加上 default.yaml 原有的 email 規則,識別包含 @ 字符的郵箱,於是可以一氣呵成 rime123@company.com
# 第二例,輸入到 rimeime 時,立即識別爲西文輸入,並可跟隨任意位數字及指定的符號
patch:
recognizer/patterns/rime123: "^rime[0-9]+$"
recognizer/patterns/rimeime: "^rimeime[-_.0-9]*$"
@Igotit

This comment has been minimized.

Copy link

Igotit commented Aug 4, 2012

如果这里写:
recognizer/patterns/semicolon: "^;[0-9a-zA-Z]*$"

似乎可以做到分号(;)临时转英文的功能,但转出的结果里也包含了起首的分号。有没有办法改进一下,用分号打头的输入会被识别出来,但输出结果却不包含分号?

@lotem

This comment has been minimized.

Copy link
Owner Author

lotem commented Aug 4, 2012

沒法了。可以用Shift鍵切換。

@Igotit

This comment has been minimized.

Copy link

Igotit commented Aug 16, 2012

研究了一段时间,其实临时转英文这个功能和五笔的反查(reverse_lookup)很像啊,比如在反查的情况下,输入拼音后按空格选择,reverse_lookup/prefix也不会上屏啊,不知道能汉有借由这个来实现,但不知如何下手。

当然,我倒觉得那个ascii_composer可能更适合来处理这个,目前只有ascii_composer/switch_key来完全切换中英文状态,完全可以增加一个ascii_composer/temp_switch_key来临时切换啊。

目前大部分有这功能的五笔输入法都是将分号(;)用作这个临时英文键,其实不只是临时英文,是英文状态下的任意字符,甚至包括空格、英文标点等字符,直到按过回车后,将所有字符输出上屏,且状态还在中文状态。这个功能在临时输入email地址、英文标点、汉英夹杂的文字时特别快捷。而如果用Shift完全切换状态,还要再切换回来,还是比较影响流畅度的。

PS:我记得以前用过的拼音输入法里的v键貌似也是类似这个功能来着,可见这个功能还是比较常见的吧。

@0rt

This comment has been minimized.

Copy link

0rt commented May 16, 2015

nice

@Edenharder

This comment has been minimized.

Copy link

Edenharder commented Nov 24, 2015

请问如何设定多个第一例类型的呢?谢谢!

@wzyboy

This comment has been minimized.

Copy link

wzyboy commented Nov 14, 2018

目前大部分有这功能的五笔输入法都是将分号(;)用作这个临时英文键,其实不只是临时英文,是英文状态下的任意字符,甚至包括空格、英文标点等字符,直到按过回车后,将所有字符输出上屏,且状态还在中文状态。这个功能在临时输入email地址、英文标点、汉英夹杂的文字时特别快捷。而如果用Shift完全切换状态,还要再切换回来,还是比较影响流畅度的。

从「极点五笔」到 Fcitx,我一直习惯于用分号引导临时英文,不用按 Shift 来回切。最近正在切换到 Rime,标点等其他全部配成和原有习惯一致了,唯分号引导临时英文未能实现。看到 @lgotit 这 2012 年的留言,感慨万千……

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.