vChewing / vChewing-macOS

威注音輸入法 macOS 版,恐怕是截至目前為止在功能多樣性方面最強的第三方免費 macOS 系統專用輸入法,採純 Swift 語言寫就。威注音的著力點是盡可能在力所能及的範圍內將整個產品的功能做得更好用,搭配特製的簡體中文與繁體中文專用辭庫。是純粹的簡體中文注音輸入法(也內贈原生繁體中文輸入模式),更具諸多威注音特色功能。目前研發管理工作均在 CSDN GitCode 進行。
https://vchewing.github.io/
Other
303 stars 10 forks source link

【待辦】得允許大鍵盤右側數字鍵區繞過組音區直接與組字區交互。 #517

Closed wayneljw closed 7 months ago

wayneljw commented 7 months ago

原始工單標題:

[功能問題提報]使用全尺寸鍵盤,按右側數字鍵,組字區內容就會馬上被送出

請問您遇到的是:

例如我要輸入「這是二(2)」。 我先把括弧「()」輸入好之後,再將游標移回括弧內來輸入內容。 如果括弧內是輸入中文就沒問題,但如果是「以全尺寸鍵盤按右側數字鍵來輸入數字」,組字區就會馬上被提交,並且數字沒有出現在預期的位置。

操作流程:

預期結果:

實際結果:

說明: 上述在括弧裡若輸入中文,就不會有這個問題。 只有在按右側數字鍵的時候才會出現此問題。 事實上,不僅是括弧,一般輸入中文過程裡,如果按游標回到前面去輸入數字,都會發生「組字區馬上被送出,並且數字出現在最後」的情形。 會發現這個問題是因為通常在輸入成對的標點時(括弧、引號),都會習慣先整組輸入完,再用游標退回去輸入括弧的內容。

系統環境:

ShikiSuen commented 7 months ago

這是威注音的故意設計,以應對 Excel 使用者對數字的便捷輸入需求。 但現在來看恐怕需要對 NumPad 做一個追加開關、允許 NumPad 繞開組音區直接輸入符號與標點。

這個功能恐怕會推遲到二月底才能有機會實裝。在此之前的更新很可能不會有時間實裝與此功能有關的變動。 這段時間內您可以改用這樣的方法:

https://github.com/vChewing/vChewing-macOS/assets/3164826/4389a798-ce41-4154-8efa-4f5070ada8f1

ShikiSuen commented 7 months ago

@wayneljw 請問您希望 在按照您期許的方式輸入的數字 是全形還是半形?

ShikiSuen commented 7 months ago

Proposal:

テンキーで入力可能の文字 / 數位小鍵盤的可輸入字元 / Printable Chars in Numeric Pad

- 半角でそのまま送り出す / 以半形文字直接遞交 / Commit directly (half-width)
- 入力緩衝列に半角文字を挿入 / 以半形文字插入組字區 / Insert into composition buffer (half-width)
- 入力緩衝列に全角文字を挿入 / 以全形文字插入組字區 / Insert into composition buffer (full-width)

後兩個選項對應的原廠辭典的檢索前綴碼都是「_NumPad_」開頭,但會對全形候選字與半形候選字動態地給出不同的權重(根據上述使用者篇害設定而做出對應的變動)。可以使用候選字輪替鍵切換(組字區內的)單個文字的全半形。


得給 LangModelAssembly 引入一個專門用來處理 NumPad 的函式。

ShikiSuen commented 7 months ago
image

已針對語言模組總成部件將數字鍵盤區的資料補給特性實作完畢。 接下來找時間給輸入法本體對接實作這個功能。

wayneljw commented 7 months ago

@ShikiSuen 謝謝您的回覆。

從影片上來看,您是使用了option按鍵搭配上方數字鍵在組字區輸入數字,是嗎?我現在才知道可以這樣輸入,也是一個解決辦法。

另回覆:一般我使用右側數字鍵的時候,都是輸入半形。但如果這個設定未來會成為一個設定選項,倒是可以考慮讓使用者自行決定。

您稍早提到的「這是威注音的故意設計,以應對 Excel 使用者對數字的便捷輸入需求。」 確實沒錯,在「中文輸入法的狀態下」,使用者是會希望在儲存格裡直接按右側的數字鍵來快速輸入數字。 我測試了一下,目前的行為是:

從上述來看,「Shift+字母鍵」有設定可以控制其行為。但數字鍵沒有。

因此,不知道是否您認同以下的歸納:

2024-01-27_23-24-05

另請問,您是否有考慮在威注音官網,或是github提供贊助功能?

ShikiSuen commented 7 months ago

@wayneljw 論及贊助功能的方法途徑,我還在考量中。 我居住在中國大陸,你們熟悉的贊助方式多半不適用。

ShikiSuen commented 7 months ago

@wayneljw 您的歸納我看明白了。那就相當於多出兩個選項。這樣也可以。

ShikiSuen commented 7 months ago

更新一下 proposal:

    case .kNumPadCharInputBehavior: return .init(
        userDef: self, shortTitle: "Printable Chars in Numeric Pad:", // テンキーで入力可能の文字 / 數字小鍵盤的可輸入字元
        description: "Choose the behavior of numeric pad inputs.", // テンキー文字の入力行為をご指定ください。 // 指定數字小鍵盤的輸入行為。
        options: [
          0: "Always directly commit half-width chars", // いつでも半角で直接出力 / 始終以半形文字直接遞交
          1: "Always directly commit full-width chars", // いつでも全角で直接出力 / 始終以全形文字直接遞交
          2: "Insert into composition buffer (half-width)", // 入力緩衝列に半角文字を挿入 / 以半形文字插入組字區
          3: "Insert into composition buffer (full-width)", // 入力緩衝列に全角文字を挿入 / 以全形文字插入組字區
          4: "Directly commit half-width chars only if the compositor is empty", // 入力緩衝列がからっぽの時、半角で直接出力 / 直接遞交半形文字,除非組字區不為空
          5: "Directly commit full-width chars only if the compositor is empty", // 入力緩衝列がからっぽの時、全角で直接出力 / 直接遞交全形文字,除非組字區不為空
        ]
      )
ShikiSuen commented 7 months ago

該功能針對主流版本的內容已經實作完畢,只剩下 Aqua 紀念版專用的(針對 macOS 10.9 的)偏好設定介面需要實作。 回頭會隨 3.7.3 版更新推送。

image
ShikiSuen commented 7 months ago

全部實作完畢。

image
ShikiSuen commented 7 months ago

Dealt.