使用時,發現其還是沒有將中途輸入大寫字母的情況切換到英文輸入狀態,於是,我又開始嘗試修改源**.
按照前文
boolean switchtoeng(fcitxautoengstate* autoengstate, char *str)
return false;
}其中,printf語句為便於分析該函式作用而寫的除錯輸入,在編譯,安裝(由於fcitx將在/usr/lib和/usr/local/lib下搜尋執行庫,故必須進行安裝),執行後發現,autoeng->str輸出的為如"https","http:"等,並且在輸入開頭為這些字串時,fcitx將自動進入英文狀態,這樣,可以判斷,該函式的確是自動切換英文輸入的方法,在返回true時,fcitx進入英文輸入狀態.
於是,我在for迴圈之後,增加如下**:
int index = autoengstate->index - 1;autoengstate->buf中存放的是當前輸入的字元(最後乙個為'\0'),這裡,我僅對"中途"輸入大寫字母的情況進行了判斷,如果中途輸入了大寫字母,則返回true,這樣fcitx便自動進入英文輸入狀態.char last = autoengstate->buf[index];
if (index > 0 && ('a' <= last && 'z' >= last))
如此,我的目的便輕鬆地達到了.
如果,這樣的判斷還是不能滿足要求,那就在if語句中再增加判斷條件吧!
src/module/autoeng/autoeng.c
",並將函式"
switchtoeng
"修改為如下**:
boolean switchtoeng(fcitxautoengstate* autoengstate, char *str)在控制台中輸入如下命令進行編譯,安裝:// 那再對是否含有大寫字母或標點進行判斷,是,則進入英文輸入狀態
int index = autoengstate->index - 1;
char last = autoengstate->buf[index];
if (index > 0 && ('a' <= last && 'z' >= last))
return false;
}
$ cmake . && make && sudo make install && pkill fcitx && fcitx
英文版Ubuntu安裝Fcitx輸入法
在英文環境 lc ctype en us.utf 8 下安裝,可按如下配置 首先,執行 sudo apt get install fcitx pinyin im switch 然後,執行 im switch s fcitx z all all 最後,在 system settings 中開啟 lan...
Autoit輸入法切換成英文 08040804
在編寫鉤子的時候,盡量多使用controlsend,但某些情況下需要使用 send,可以先切換輸入法為英文再使用send。08040804 為 英語美式鍵盤,如需切換其它輸入法,修改此處即可!具體 如下 hwnd wingethandle active hwnd 為目標視窗控制代碼,這裡設定的是當前...
Autoit輸入法切換成英文 08040804
在編寫鉤子的時候,盡量多使用controlsend,但某些情況下需要使用 send,可以先切換輸入法為英文再使用send。08040804 為 英語美式鍵盤,如需切換其它輸入法,修改此處即可!具體 如下 hwnd wingethandle active hwnd 為目標視窗控制代碼,這裡設定的是當前...