rime / librime

Rime Input Method Engine, the core library
https://rime.im
BSD 3-Clause "New" or "Revised" License
3.37k stars 551 forks source link

五笔四码唯一自造词 fn+shift+delete 无法删除 #303

Open yam-liu opened 5 years ago

yam-liu commented 5 years ago

开启了五笔自造词,比如最近经常输入“通用“ “逻辑”(ceet lqlk),然后被保存成了自定义词组 “通用逻辑” (cell)。但是更经常的是输入英文 cell 来进行交流,这时也无法通过选中词语来进行删除,因为输入达到四码唯一就已经上屏了。而且能删除,删除之后再打一次又会回来。 先问下有什么办法可以删除四码唯一的自造词么?

其次,通过使用清歌输入法发现,手动管理自造词貌似是还好的一种方法(对于五笔)。因为五笔为了低重码率,无关自造词增加会降低效率,影响正常输入。比如下面这样: image image image 有个冒昧的想法是可否完全自定义增加和删除,并提供快捷键,类似清歌输入法。 仍然保持学习的功能,但是不自动生成自造词。用户如果想保留词语,可以按 Control + 手动保存;不想要的刚输入的词,Control - 手动删除。不知可否考虑下。

Ace-Who commented 5 years ago
# wubi86.custom.yaml

speller:
  auto_select: false  # 禁用自动上屏
  max_code_length: 4  # 第五码顶字上屏
  delimiter: "'"  # 分隔符会取消自动上屏和顶字上屏

translator/enable_encoder: true  # 开启自动造词(利用 delimiter 分隔并续写输入串)
translator/encode_commit_history: false  # 禁止对上屏字词自动造词
yam-liu commented 5 years ago

这样设置不符合的我的输入习惯了。auto_select 需要是 true。而且设置完好像也没有自造词了。。

Ace-Who commented 5 years ago

更正:

# wubi86.custom.yaml
patch:
  speller:
    auto_select: false  # 禁用自动上屏
    max_code_length: 4  # 第五码顶字上屏
    delimiter: "'"  # 分隔符会取消自动上屏和顶字上屏

  translator/enable_encoder: true  # 开启自动造词(利用 delimiter 分隔并续写输入串)
  translator/encode_commit_history: false  # 禁止对上屏字词自动造词

auto_select 要开启的话,没有办法,这个逻辑是自相矛盾的。

yam-liu commented 5 years ago

嗯。只是想删除自造词。这样倒是能删但是不太方便

On Thu, Sep 5, 2019 at 22:17 Ace-Who notifications@github.com wrote:

更正:

wubi86.custom.yaml

patch:

speller:

auto_select: false  # 禁用自动上屏

max_code_length: 4  # 第五码顶字上屏

delimiter: "'"  # 分隔符会取消自动上屏和顶字上屏

translator/enable_encoder: true # 开启自动造词(利用 delimiter 分隔并续写输入串)

translator/encode_commit_history: false # 禁止对上屏字词自动造词

auto_select 要开启的话,没有办法,这个逻辑是自相矛盾的。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/rime/librime/issues/303?email_source=notifications&email_token=AAICAI3NHQ3Y2NKDDO77YITQIEIIPA5CNFSM4ILIBAGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD57IPEY#issuecomment-528385939, or mute the thread https://github.com/notifications/unsubscribe-auth/AAICAI7ZZTTQAQ5HSSDDN5LQIEIIPANCNFSM4ILIBAGA .

Ace-Who commented 5 years ago

可以多设一个翻译器,以引导符启动,专门负责造词,仅在此翻译器中禁用 auto_select

Ace-Who commented 5 years ago

说错了,auto_select 不是翻译器的选项,无法对单个翻译器禁用。但是以下配置应该能满足需求:

# wubi86.schema.yaml

schema:
  schema_id: wubi86
  name: "五笔86"
  version: "0.21"
  author:
    - 發明人 王永民先生
  description: |
    五筆字型86版
    碼表源自 ibus-table
    敲 z 鍵進入拼音反查
  dependencies:
    - pinyin_simp

switches:
  - name: ascii_mode
    reset: 0
    states: [ 中文, 西文 ]
  - name: full_shape
    states: [ 半角, 全角 ]
  - name: extended_charset
    states: [ 常用, 增廣 ]
  - name: ascii_punct
    states: [ 。,, ., ]

engine:
  processors:
    - ascii_composer
    - recognizer
    - key_binder
    - speller
    - punctuator
    - selector
    - navigator
    - express_editor
  segmentors:
    - ascii_segmentor
    - matcher
    - abc_segmentor
    - affix_segmentor@encoder
    - punct_segmentor
    - fallback_segmentor
  translators:
    - punct_translator
    - reverse_lookup_translator
    - table_translator@fixed
    - table_translator
    - table_translator@encoder
  filters:
    - uniquifier

speller:
  delimiter: " ;'"
  auto_select: true
  max_code_length: 4

translator:
  dictionary: wubi86
  enable_charset_filter: true
  enable_user_dict: true
  enable_sentence: false
  enable_encoder: true
  encode_commit_history: false
  max_phrase_length: 4
  disable_user_dict_for_patterns:
    - "^z.*$"

fixed:
  __include: translator
  enable_user_dict: false
  initial_quality: 1000

encoder:
  __include: translatar
  enable_sentence: true
  prefix: '`'
  tips: '【造词】'
  tag: encoder

reverse_lookup:
  dictionary: pinyin_simp
  prefix: "z"
  suffix: "'"
  tips: 〔拼音〕
  preedit_format:
    - xform/([nl])v/$1ü/
    - xform/([nl])ue/$1üe/
    - xform/([jqxy])v/$1u/

punctuator:
  import_preset: default

key_binder:
  import_preset: default

recognizer:
  import_preset: default
  patterns:
    reverse_lookup: "^z[a-z]*'?$"
    encoder: '`[a-y;]*'

以引导符 ` 临时启用造词翻译器 encoder,此翻译器支持连打和 delimiter 分号键 ;,又因为不会自动提交候选,应该可用于删词。

此外还有固态词典固定词序,自造词后置且自动调序的特性。

未经测试。

yam-liu commented 5 years ago

@Ace-Who 感谢提供的方法,但是试了下貌似是无效的。

X1aomu commented 5 years ago

有个冒昧的想法是可否完全自定义增加和删除,并提供快捷键,类似清歌输入法。 仍然保持学习的功能,但是不自动生成自造词。用户如果想保留词语,可以按 Control + 手动保存;不想要的刚输入的词,Control - 手动删除。不知可否考虑下。

我这里有一个可能满足你要求的方案,可供你参考:https://github.com/X1aomu/rime-uggx

https://github.com/X1aomu/rime-uggx/blob/8af5239ef4df298166f81603befbefe496ffb2c4/uggx.schema.yaml#L81-L88

https://github.com/X1aomu/rime-uggx/blob/8af5239ef4df298166f81603befbefe496ffb2c4/uggx.schema.yaml#L132-L171

操作上略有不同,默认在最后提供历史学习提示,用户如果想保留,将提示词上屏一次即可。上屏一次后将加入用户词典,出字优先级提高。 想删除己有自造词,选中后按 Ctrl + Delete 即可。删除快捷键可按 rime 的方式自定义,但是 rime 好像没有提供类似你说的 Control + 的快捷键,可用上屏替代。

yam-liu commented 5 years ago

多谢。配置略复杂些,我先研究下。

yam-liu commented 4 years ago

感觉前面的方案还是太麻烦了,我索性把自造词关了,每次需要新加的词或者删除词就直接编辑 wubi86.dict.yaml。好维护,和清歌的操作方式也差不多。