Cychih
Cychih
iblis 表示 rime 就是這樣的架構,有機會!
哇是 @shaform !(從椅子摔下 ime.vim 已經變成一個 framework,可以裝第三方套件,連原本的核心嘸蝦米也變成套件了。 所以接上系統輸入法這個工作會交給另外的套件處理。 不過、不過、現在可能還接不上去(或是會有問題): 系統輸入法在運作的時候會有自己的小小 buffer,就是那個浮動視窗,常常還會附選單可以選字。 但 ime.vim 是直接從游標往前抓字,根本不知道之前那個字怎麼來的。 簡單來說系統輸入法有自己的 context,知道哪些是「它的字」,可是 ime.vim 不知道,連帶的會讓第三方套件也不知道(雖然透過一些 workaround 說不定可以知道)。 一個例子:ime-phonetic.vim#23 仍在想方法(思
試了一下發現沒有想像中容易,特別是要在 runtime 做這件事,得分辨出哪些 `imap` 是 user 設定的,哪些是 plugin 設定的。
但在實作這個功能的時候儘可能不要增加 mapping,多一個 mapping 就可能多一個 bug 如果可以的話,event 也要小心使用,不要使用會被經常觸發的 event(效能考量) 不過我認為可以做一些讓實作容易一點的假設,例如假設使用者在打字時不會用方向鍵移動游標
目前有個粗略的想法是,在按下空白鍵的時候把游標位置和字根存起來,按下 cancel input 的時候比對游標位置 但有個問題是那串字根所送出的字沒辦法 100% 用來回推字根,而 CompleteDone event 在 7.3 沒有實作
想到一個問題,真的用 `getchar()` 來做選單的話,所有的 `inoremap` 都會被擋住。 真要做的話可能要用 `feedkey()` 再把按鍵丟回去。
而且這種方法容易閃爍
仔細想了想,這個功能真的有需要嗎? 至少目前我想不到有什麼 embedded plugin 只能附著在其中一個輸入模式下的
修改了方向,從 standalone 的角度看可能比較合適
#26 (讓 standalone plugin 決定送字的 key) 和這個可能有關