跟學弟討論過後,因為我們兩個都有在使用vim,很習慣 hjkl 的移動方式,所以我打算自己動手修改,嘗試使用 shift + hjkl 的方法
來移動游標以及拉下選字選單。
稍微爬了一下程式碼,但是不知道該從哪邊下手,能不能請前輩指導一下該從哪個 class 或是檔案開始閱讀?
多謝。
yoco
其實我已經 hack 進去好久了, 所以現在的 win32-chewing 或其他用 libchewing 弄出來的酷音輸入法就有這個功能 (爆)
當時是選 jk 當左右鍵, 假如沒把選字鍵設成 asdfghjkl 這排的話, j 就是左移, k 就是右移
(我自己是用 jk 左右移 + 數字鍵 0-9 選字)
現在想想好像要用 hl 才符合 vim 方向鍵習慣, 但似乎沒有比較好按 hmm
又懶得弄設定介面 ... 就這樣好幾年過去 (下略
這段程式碼在 libchewing\src\chewingio.c # OnKeyDefault 裡面。
BR,
Tib
2011/6/23 yoco <peter...@gmail.com>:
> --
> 您已訂閱「Google 網上論壇」的「Chewing IM Development」群組,因此我們特別傳送這封郵件通知您。
> 如要在此群組張貼留言,請傳送電子郵件至 chewin...@googlegroups.com。
> 如要取消訂閱此群組,請傳送電子郵件至 chewing-deve...@googlegroups.com。
> 如需更多選項,請造訪此群組:http://groups.google.com/group/chewing-devel?hl=zh-TW。
>
>
感謝大大回覆。但小弟尚有兩個疑惑的地方。
小弟剛剛看了一下 chewingio.c,發現 jk 真的可以用來換頁,原來還有這種隱藏功能 XD
可能我前面沒有講清楚抱歉 QQ
其實我想要的是可以在 edit 模式下,不使用方向鍵,就能移動 buffer 游標。
因為有的時候輸入錯誤的字,手還要按「←→」移到前面去,再按「↓」拉出 select 模式。
用慣 vim 以後,由於雙手懶惰,所以希望可以有別的方法移動 buffer 的游標。
感謝前輩回覆,這樣我知道 chewing 處理按鍵是在哪邊了。
本來我昨天後來繼續看程式碼,
看到好似可以在 ChewingIME.cpp 的 FilterKeyByChweing() 這個函數進行按鍵的處理,
原來的程式碼有 if ( key == VK_LEFT ) g_chewing->Left(),
我想說可以在稍微前面一點的地方判斷「Shift + HJKL」然後呼叫 g_chewing->Left/Up/Down/Right()。
這樣應該也可以吧?
若小弟有任何成果會再回來報告 XD
感謝。
On 6月24日, 上午12時52分, Tib <tiberius.t...@gmail.com> wrote:
> Hi,
>
> 其實我已經 hack 進去好久了, 所以現在的 win32-chewing 或其他用 libchewing 弄出來的酷音輸入法就有這個功能 (爆)
> 當時是選 jk 當左右鍵, 假如沒把選字鍵設成 asdfghjkl 這排的話, j 就是左移, k 就是右移
> (我自己是用 jk 左右移 + 數字鍵 0-9 選字)
>
> 現在想想好像要用 hl 才符合 vim 方向鍵習慣, 但似乎沒有比較好按 hmm
> 又懶得弄設定介面 ... 就這樣好幾年過去 (下略
>
> 這段程式碼在 libchewing\src\chewingio.c # OnKeyDefault 裡面。
>
> BR,
> Tib
>
> 2011/6/23 yoco <peter.x...@gmail.com>:
我是設定空白鍵選字, 先按 space 進入選字模式, 再用 jk 往前移、空白換頁、數字鍵選擇選項, tab 斷詞 ...
沒有進入選字模式要怎麼移動我就不知道了, 等你研究 XD
BR,
Tib
2011/6/24 yoco <peter...@gmail.com>:
感謝回覆,敝人初步已經成功啦,目前是改 ChewingIME.cpp 的 FilterKeyByChweing() 這個函數,
在裡面加上 if ( keystatus[VK_SHIFT] && key == 'H' ) key = VK_KEFT ;
如果就可以把 Shift H 竄改成 Shift Left。
但是,trace 了一下原始碼,發現 Shift Left 再新酷音似乎有別的用途,
不過我看 chewingio.c 裡面,OnKeyShiftLeft() 的註解寫著「Add phrase in Hanin Style」
但我不確定 Shift Left 到底是什麼作用,因為我平常按下 Shfit Left 的行為跟只按 Left 好像一樣。
可以請教一下 Shift Left 是作什麼用的嗎?
如果說真的跟原有功能有衝突的話,我可能考慮增加一個「HJKL編輯模式」,然後使用某個熱鍵進入,
gcin 好像也有 Ctrl + e 就可以進入這種模式的功能。
yoco.
Shift + Left/Right 是用來做動態加入詞庫的功能,例如:
新酷音輸入法
[----][----]‾
一般是斷成這樣,若是使用 Shift + Left 用游標把整串字反白,
則會加入新詞
新酷音輸入法
[----------]‾
> 如果說真的跟原有功能有衝突的話,我可能考慮增加一個「HJKL編輯模式」,然後使用某個熱鍵進入,
--
Kanru
--
Kanru
--
您已訂閱「Google 網上論壇」的「Chewing IM Development」群組,因此我們特別傳送這封郵件通知您。
如要在此群組張貼留言,請傳送電子郵件至 chewin...@googlegroups.com。
如要取消訂閱此群組,請傳送電子郵件至 chewing-deve...@googlegroups.com。
如需更多選項,請造訪此群組:http://groups.google.com/group/chewing-devel?hl=zh-TW。
Kanru
--
您已訂閱「Google 網上論壇」的「Chewing IM Development」群組,因此我們特別傳送這封郵件通知您。
如要在此群組張貼留言,請傳送電子郵件至 chewin...@googlegroups.com。
如要取消訂閱此群組,請傳送電子郵件至 chewing-deve...@googlegroups.com。
如需更多選項,請造訪此群組:http://groups.google.com/group/chewing-devel?hl=zh-TW。