home
home copied to clipboard
在某些程序的输入框中自动上屏后会直接清空输入框的所有内容
输入法
weasel 0.14.3
示例
在 Visual Studio 2017 的 commit 提交输入框中(注:在代码编辑器等输入工作都是正常的):

在示例中,测字自动上屏之后,无论接下来输入任何字,上屏时都会清空输入框中的内容,仅保留最后上屏的字,如示例中的试字。
其次,这个现象在使用"嵌入式编码行"时会是这样的:

在测字自动上屏时就已经会出现清空输入框内所有内容,只留下了下一个字的起始编码 d。
其他程序
除了在上述 VS2017 的这个输入框中遇到这个情况外,我目前还在以下程序的某些输入框中遇到过这个情况(注:不是这些程序所有的输入框或编辑器):
- Sourcetree 的 commit 提交输入框
- ScreenToGif 的另存为文件名输入框
方案配置
另外附上我的输入方案配置:
# *.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]*'?$"
没用过Visual Studio,试试看这个? https://github.com/rime/weasel/issues/605#issuecomment-797862135
在 Listary 6 测试版(虽然这个软件已经不更新了)中有类似现象,不同的是在自动上屏的同时就清空了输入框。
同问,我在twitter网站上输入也有这个问题。版本0.14.3