居戎氏

Results 573 comments of 居戎氏

> 做到這個就可以了,只顯示 tick 接近當前時刻的臨時詞。 有道理啊…… --- 但是做不到啊,`t` 值只表示記錄的 `d` 值是在 `t` 時刻的記憶強度,不代表上屏的時刻。 應該判斷留存的記憶減小到一定程度就不顯示。

> 这个清理办法在我这里行不通。因为每个词条后面的t值与userdb文件顶部的tick都是一个相同的数值。我用的是小狼毫,不知道这是不是一个bug `t` 的數值是這條記錄更新的時刻,不必是記錄產生或是該詞條最後一次上屏的時刻。 只要同步用戶詞典,所有記錄都會更新一遍。

第一種是爲了解決兼容性問題而特意添加的,代碼在這裏: https://github.com/rime/squirrel/blob/cf9c4ab1d35a54ac09e8b03fc45968ae8478a16a/SquirrelInputController.m#L523 時間比較久了。可以重新測試一下適用情況。 第二個問題,我偶爾遇到但不容易重現,所以一直沒有找到原因。U+0008這是個有用的線索。看樣子結果是把刪除鍵直接提交進去了。

重新測試了一下。第一處添加的佔位字符仍是必要的,否則一些程序如Terminal.app不知道輸入法正在編輯文字,會搶先處理BackSpace等功能鍵。

第二個場景我也測試了,沒能重現問題。最好找到重現步驟。

有时候还会打出回车符也就是`U+000D`。 还有几次在Xcode里面按出了`Control+s`对应的控制字符。

有待觀察這項改動 https://github.com/rime/squirrel/commit/b875d194d9799ccc74453292c670fcca892799fa 對本問題的影響。

> 已找到在 VSCode 下100%复现的方法。 > > 过程描述: > > 1. 输入字符后,鼠标点击输入法框(用其他方法使输入框失焦,亦可)。 > 2. 屏幕残留一个`U+3000`。 > 3. 再次输入中文,此时按 Backpase 删除 preedit 的所有内容。 > 4. 屏幕上会残留`U+3000`,和一个不可见的`U+0008`。 > > 之后的每次输入,在删除掉 preedit 区域内容时,都会残留上述过程编号4的内容。即使是重新部署鼠须管也无法正常,需关闭VSCode。 >...

> 要不要把 U+3000 换成 ASCII SPACE? 不要