Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问怎么设置在五笔拼音状态下按z键可以重复输出? #396

Closed
uoow opened this issue Jul 5, 2019 · 22 comments
Closed

请问怎么设置在五笔拼音状态下按z键可以重复输出? #396

uoow opened this issue Jul 5, 2019 · 22 comments
Assignees
Labels

Comments

@uoow
Copy link

uoow commented Jul 5, 2019

这个功能在五笔里是普遍用上了,不知道RIME有没有这个选项。如:输出“五笔”后,再按一次z键,空格,则再输出”五笔“一次。

@Ace-Who
Copy link

Ace-Who commented Jul 5, 2019

「普通用上了」是什么意思?不知道「拼音状态」是指什么,以及为什么要求在该状态下实现这个功能。

以下是撇开这些问题的解法,以五笔 86 方案为例。

# wubi86.custom.yaml

patch:
  engine/translator/@next: history_translator@history

history:
  input: z
  size: 1
  initial_quality: 1

@uoow
Copy link
Author

uoow commented Jul 6, 2019

抱歉。打错了,应该是“普遍用上了”。「五笔拼音」是指RIME里的输入方案,这个状态。简单来说就是要z键重复输出。
@Ace-Who 用你所说的设置并不生效。代码如下:

# wubi_pinyin.custom.yaml

patch: 
  "switches/@0/reset": 1
  engine/translator/@next: history_translator@history
  
  "key_binder/bindings":
    - { when: has_menu, accept: semicolon, send: 2 }
    - { when: has_menu, accept: apostrophe, send: 3 }
    
history:
  input: z
  size: 1
  initial_quality: 1

@Ace-Who
Copy link

Ace-Who commented Jul 6, 2019

engine/translator 改为 engine/translators

@uoow
Copy link
Author

uoow commented Jul 6, 2019

translators,我也发现了这个问题,但还是不生效;包括加引号也试过了。@Ace-Who

@Ace-Who
Copy link

Ace-Who commented Jul 6, 2019

这就不知道为什么了。看看有没有错误日志—— Windows 是 %TEMP%\rime.weasel.%COMPUTERNAME%.%USERNAME%.log.ERROR.<DATE-TIME>,确定一下是否部署成功。部署会重新生成 %APPDATA%\Rime\build\<schema_id>.schema.yaml,看看修改时间和内容对不对。

@Ace-Who
Copy link

Ace-Who commented Jul 6, 2019

抱歉,是我的错:

# <schema_id>.custom.yaml

patch:
  engine/translators/@next: history_translator@history

  history:
    input: z
    size: 1
    initial_quality: 1

@uoow
Copy link
Author

uoow commented Jul 8, 2019

没看明白,还是修改原来那个文件吗?然后把history那一段都退两格?但是依然不生效。本人愚钝,还请明示!@Ace-Who

@Ace-Who
Copy link

Ace-Who commented Jul 8, 2019

对。

@uoow
Copy link
Author

uoow commented Jul 8, 2019

试过了,还是无效。

#wubi_pinyin.custom.yaml
patch: 
  "switches/@0/reset": 1
  "engine/translators/@next": history_translator@history
  
  "key_binder/bindings":
    - { when: has_menu, accept: semicolon, send: 2 }
    - { when: has_menu, accept: apostrophe, send: 3 }
  

  history:
    input: z
    size: 1
    initial_quality: 1

@bosconb
Copy link

bosconb commented Jul 8, 2019

我的设置部分,小鹤音形方案,;f触发。

xhup.schema.yaml

engine:
  translators:
    - punct_translator
    - reverse_lookup_translator
    - history_translator@history
history:
   input: ;f
   size: 1
   initial_quality: 1

@uoow
Copy link
Author

uoow commented Jul 9, 2019

@Ace-Who 知道原因了,你给的设置方法没错,可以用,但不能与拼音词典一起用,不然会解释为拼音的开头的。我在另一台电脑上测试,重装了小狼毫并把设置复制过去,但忘记添加拼音词典,得出了z键是可以重复输出的,但没法同时用拼音;在添加拼音词典后z键却不生效了
@lotem 这个可以怎样修改呢?鱼与熊掌可以兼得吗

@lotem
Copy link
Member

lotem commented Jul 9, 2019

從樓上的描述看,應該已經有效。出現在拼音候選之後。

@lotem lotem closed this as completed Jul 9, 2019
@Ace-Who
Copy link

Ace-Who commented Jul 9, 2019

@uoow 确实用 z 不行,翻到最后也没出现,不知道为什么,可能与 pinyin_simp 是 reverse_lookup_translator 有关。input: zv 是可以的。

@uoow
Copy link
Author

uoow commented Jul 10, 2019

@lotem 问题并没有解决。因为五笔拼音方案依赖于拼音词典,我上面说测试生效是因为没有添加该词典,一旦添加后,z键首先匹配了拼音,那个设置z键重复输出的就失效了。能否指导一下怎么改设置,可以在按z键时,首选匹配的是重复,候选才是拼音内容。
@Ace-Who 所以,现在就有两种折衷方法。1、用五笔86方案,用这个设置z键就可以重复输出,敲z+拼音字母则输出拼音内容;2、用五笔拼音方案,然后将重复键设为v,因为没有拼音字是v开头的,所以匹配不到拼音内容,则设置生效。但是这样的话1的效率就不够高,2就要改变习惯。
暂时就QQ五笔用得没问题,它基本不更新了,就想转到小狼毫

@Ace-Who
Copy link

Ace-Who commented Jul 10, 2019

经过测试,这个方案或许比较理想:不使用作为 reverse_lookup_translator 的 pinyin_simp 来混输拼音,而改为添加一个 pinyin 翻译器来负责混输拼音。

副作用:

  1. 混输的拼音候选词不会显示五笔码提示。但是仍然可以像之前一样使用引导键「`」进行拼音反查,由于此时使用的是 reverse_lookup_translator,所以会显示五笔码。

  2. 拼音也可以自造词了。

注意:BackspaceEnter 键会清除历史

# wubi_pinyin.custom.yaml

patch:
  engine/segmentors:
    - ascii_segmentor
    - matcher
    - abc_segmentor
    - affix_segmentor@pinyin
    - punct_segmentor
    - fallback_segmentor
  engine/translators/@3: script_translator@pinyin
  engine/translators/@4: history_translator@history

  abc_segmentor/extra_tags: [ pinyin ]

  pinyin:
    tag: pinyin
    dictionary: pinyin_simp
    initial_quality: 0.2	

  history:
    input: z
    size: 1

@uoow
Copy link
Author

uoow commented Jul 10, 2019

@Ace-Who 最后的这个设置好像解决问题了,试用一番。
另外,最后的注意事项不太理解,这个历史记录了哪些内容?刚刚试用一下好像没什么影响

@Ace-Who
Copy link

Ace-Who commented Jul 10, 2019

「重复」即调用「历史输入」。

@uoow
Copy link
Author

uoow commented Jul 10, 2019

知道了,试了确实是,但没影响。已经够用,刚想将它作唯一输入法(因为发现了好多starcraft的主题,喜欢!开发者应该也是星际1的玩家?)就发现问题了,也有人提了Issue,在OneNote上还有兼容问题。那就再观望观望

@xiaoqun2016
Copy link

把 history_translator 放在主翻译器前面就行了

#
patch:
  engine/translators/@before 0: history_translator
  history/input: z

@Ace-Who
Copy link

Ace-Who commented Jul 10, 2019

@xiaoqun2016 确实可以。既然翻译器次序会影响候选排序,不知道 history 的权重有什么意义。

@uoow
Copy link
Author

uoow commented Jul 11, 2019

@xiaoqun2016 的方法简单好用啊。好了,这次真的可以Closed。感谢两位 @Ace-Who @xiaoqun2016

@kinoshitaringo
Copy link

感谢,按楼上的方法已经配置的完美了,
问一下,history_translator 可以忽略标点符号吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants