home icon indicating copy to clipboard operation
home copied to clipboard

在某些程序的输入框中自动上屏后会直接清空输入框的所有内容

Open LightAPIs opened this issue 4 years ago • 4 comments

输入法

weasel 0.14.3

示例

在 Visual Studio 2017 的 commit 提交输入框中(注:在代码编辑器等输入工作都是正常的):

1

在示例中,字自动上屏之后,无论接下来输入任何字,上屏时都会清空输入框中的内容,仅保留最后上屏的字,如示例中的字。

其次,这个现象在使用"嵌入式编码行"时会是这样的:

2

字自动上屏时就已经会出现清空输入框内所有内容,只留下了下一个字的起始编码 d

其他程序

除了在上述 VS2017 的这个输入框中遇到这个情况外,我目前还在以下程序的某些输入框中遇到过这个情况(注:不是这些程序所有的输入框或编辑器):

方案配置

另外附上我的输入方案配置:

# *.schema.yaml

# ...

switches:
  - name: simplification
    reset: 0
    states: ['简体', '繁体']
  - name: ascii_punct
    reset: 0
    states: [',。', ',.']
  - name: full_shape
    states: ['半角', '全角']
  - name: ascii_mode
    reset: 0
    states: ['中文', '英文']

engine: # 輸入引擎設定,即掛接組件的「處方」
  processors: # 一、這批組件處理各類按鍵消息
    - ascii_composer # ※ 處理西文模式及中西文切換
    - recognizer # ※ 與 matcher 搭配,處理符合特定規則的輸入碼,如網址、反查等
    - key_binder # ※ 在特定條件下將按鍵綁定到其他按鍵,如重定義逗號、句號爲候選翻頁鍵
    - speller # ※ 拼寫處理器,接受字符按鍵,編輯輸入碼
    - punctuator # ※ 句讀處理器,將單個字符按鍵直接映射爲文字符號
    - selector # ※ 選字處理器,處理數字選字鍵、上、下候選定位、換頁鍵
    - navigator # ※ 處理輸入欄內的光標移動鍵
    - express_editor # ※ 編輯器,處理空格、回車上屏、回退鍵等
  segmentors: # 二、這批組件識別不同內容類型,將輸入碼分段
    - ascii_segmentor # ※ 標識西文段落
    - matcher # ※ 標識符合特定規則的段落,如網址、反查等
    - abc_segmentor # ※ 標識常規的文字段落
    - punct_segmentor # ※ 標識句讀段落
    - fallback_segmentor # ※ 標識其他未標識段落
  translators: # 三、這批組件翻譯特定類型的編碼段爲一組候選文字
    - punct_translator # ※ 轉換標點符號
    - table_translator # ※ 碼表翻譯器,用於倉頡、五筆等基於碼表的輸入方案
    - reverse_lookup_translator # ※ 反查翻譯器,用另一種編碼方案查碼
    - history_translator@history
    - lua_translator@date_translator_lxsy
    - lua_translator@time_translator_lxsy
  filters: # 四、這批組件過濾翻譯的結果
    - simplifier # ※ 繁簡轉換
    - uniquifier # ※ 過濾重複的候選字,有可能來自繁簡轉換
    - single_char_filter # 單字過濾器,如加載此組件,則屛敝詞典中的詞組

translator:
  dictionary: lxsy
  enable_encoder: false
  encode_commit_history: false
  enable_completion: true
  enable_sentence: false # 關閉碼表輸入法連打
  enable_user_dict: false # 關閉用戶詞典和字頻調整
  disable_user_dict_for_patterns:
    - '^z.*$'

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

history:
  input: z
  size: 1
  initial_quality: 1

punctuator: # 設定符號表
  import_preset: symbols.custom

speller:
  alphabet: "abcdefghijklmnopqrstuvwxyz;',./"
  initials: 'abcdefghijklmnopqrstuvwxyz'
  auto_select: true

key_binder:
  bindings:
    - { when: has_menu, accept: minus, send: Page_Up }
    - { when: composing, accept: minus, send: Escape }
    - { when: has_menu, accept: equal, send: Page_Down }
    - { when: composing, accept: equal, send: Escape }
    - { when: has_menu, accept: space, send: space }
    - { when: composing, accept: space, send: Escape }
    - { when: always, accept: 'Control+period', toggle: ascii_punct }
    - { when: always, accept: "Control+Alt+u", toggle: full_shape }
    - { when: always, accept: 'Control+F6', toggle: full_shape }
    - { when: always, accept: "Control+Alt+j", toggle: simplification}
    - { when: always, accept: 'Control+F5', toggle: simplification }

simplifier:
  opencc_config: s2t.json
  tips: all

recognizer:
  # import_preset: default
  patterns:
    punct: '^\\([0-9]0?|[A-Za-z]+)$'
    reverse_lookup: "^`[a-z]*'?$"

LightAPIs avatar Oct 10 '21 08:10 LightAPIs

没用过Visual Studio,试试看这个? https://github.com/rime/weasel/issues/605#issuecomment-797862135

Python-37 avatar Oct 11 '21 01:10 Python-37

没用过Visual Studio,试试看这个? #605 (comment)

平时也会使用 vscode,不会有这种现象。因为这是个 C# 的项目,所以用 Visual Studio 方便些。

LightAPIs avatar Oct 11 '21 13:10 LightAPIs

在 Listary 6 测试版(虽然这个软件已经不更新了)中有类似现象,不同的是在自动上屏的同时就清空了输入框。

Ace-Who avatar Oct 19 '21 21:10 Ace-Who

同问,我在twitter网站上输入也有这个问题。版本0.14.3

zhouyisu avatar Nov 20 '21 13:11 zhouyisu