Linux安裝fcitx輸入法(命令安裝)

Linux安裝fcitx輸入法(命令安裝)

打開終端
安裝輸入法

sudo apt-get install im-switch libapt-pkg-perl fcitx fcitx-table-wbpy

設置fcitx爲默認輸入法:

im-switch -s fcitx

註銷,重新登錄

 

如果安裝碼錶轉換的話需要安裝

sudo apt install fcitx-tools

將需要使用的輸入法的碼錶文件拷貝到這個目錄即可。

root@ubuntu:/usr/share/fcitx/table# ll
total 17284
drwxr-xr-x 2 root root 4096 Jun 30 21:00 ./
drwxr-xr-x 14 root root 4096 Jun 30 20:50 ../
-rw-r--r-- 1 root root 498 Aug 30 2018 wbpy.conf
-rw-r--r-- 1 root root 10483579 Aug 30 2018 wbpy.mb
-rw-r--r-- 1 root root 404 Nov 10 2012 wlkmxy.conf
-rw-r--r-- 1 root root 3564600 Nov 10 2012 wlkmxy.mb
-rw-r--r-- 1 root root 404 Nov 10 2012 wlkmyx.conf
-rw-r--r-- 1 root root 3622425 Nov 10 2012 wlkmyx.mb

 

linux下,基於fcitx自制個人專屬輸入法

一. 自制個人輸入法的原因
我一直在使用五筆輸入法。由於個人日常工作與生活中涉及到的範圍,平時寫東西的時候會用到很多傳統文化中的專有名詞(如道、佛、儒三教中的術語、人名等),同時,我還需要經常性地引用一些短語或典籍中的名言、名句等,考慮到要儘量高效高速地輸入,所以,多年來我一直很注意保存並維護一份個人的輸入法碼錶源文件。並基於這份碼錶源文件,在windows系統下,自制有一個自己個人使用的專屬輸入法。

在linux系統下,十餘年前我使用ibus爲輸入法框架,這個輸入法支持直接使用碼錶源文件,所以只需要將我的碼錶文件附加在輸入法自帶的五筆碼錶文件尾巴後,就可使用。記得大約是06年左右,因爲某事,ibus輸入法的維護者在ibus的郵件列表上與國內linux用戶發生了衝突,越吵越厲害,作爲國內linux大神之一的某姐姐大人用到了人身攻擊性質的語言,粉絲們也一擁而上的跟進,ibus的維護者大怒,升級ibus時不再更新中文輸入法,導致中文輸入在linux下成了大問題(注:08年才恢復更新)。當時小企鵝輸入法(fcitx)還不夠成熟,經常有些莫名其妙地bug,但ibus不能正常使用,fcitx幾乎就成了唯一選擇。這後來還有故事,是大家對fcitx期望過高,難免有些求全責備,致使07年時fcitx的作者,國人Yuking兄,決定終止小企鵝輸入法的開發。這對當時國內的linux界可以說是個大事件。雖然另有人接手了fcitx的後續開發,但更新變得緩慢,且bug的修補也經常會等上很長時間。09年,Yuking兄終於迴歸fcitx項目,fcitx終於逐步走向成熟,現在成了很多linux發行版的默認輸入法。

07年後,我一直在使用fcitx輸入法,但感到有些遺憾的是,fcitx輸入法不是直接使用碼錶源文件,而是將碼錶源文件編譯壓縮爲mb文件再使用,這就導致我個人維護的自制碼錶文件無法使用。fcitx用着也很順手,時間一長,我也就不再想着一定要用自己的碼錶文件了。

前一段時間在折騰命令行模式下的中文輸入問題,想到自己windows下的碼錶文件無用武之地,終究覺得有些不甘心,再想到fcitx輸入法已經發展了這十餘年,說不定可以進行個人性質的自定義了吧?一查資料,果然可以!於是乎,花了兩天時間,在linux下利用fcitx,自制了自己專屬的輸入法。估計會有朋友也需要類似這樣自定義自己的輸入法,所以將自定義的步驟記錄如下。

二. 準備工作
1、準備好一個48*48的png圖標文件,用來當作自制輸入法的圖標。該圖標應該位於/usr/share/fcitx/imicon目錄下。
2、將自己熟悉的輸入法mb文件重新導出爲txt文件。首先進入/usr/share/fcitx目錄或/usr/share/fcitx/table目錄,找到自己常用輸入的mb文件,以我爲例,我是找到wbx.mb,將其拷貝到個人的home目錄中去,所以執行下面命令,將其導出爲txt文件:
$mb2txt wbx.mb >> wbx.txt
導出之後的文件可任意命名。用文本編輯器打開該文件,就可在文件的末尾,手工添加自定義詞語、詞組、短語、短句的碼錶。唯需注意的是,每行文本的長度不要超過256個字符,單行文本中也不能有標點符號(256個字符的長度限制,放置一首古詩或引用的古籍小段落,完全沒問題,不過要注意不能有標點)。
自制碼錶添加完成,就可用該文本生成自制的輸入法啦。生成方法後述。


不過,我在這個過程中遇到了一個不大不小的問題,那就是,我在windows下的碼錶文件格式與wbx.txt的格式有差別。win下,碼錶文件的每行,是中文字符串在前,字母的按鍵順序在後,並且兩者之間是沒有空格的。而fcitx下的碼錶文件格式,是字母按鍵順序在前,空一格之後,纔是中文的字符串。

由於我個人的碼錶源文件有千多行,手工一行一行改的話,工作量還是有點大。我的第一反應是寫段腳本來自動完成這事兒,已經準備着手寫腳本了,我突然反應過來,這事兒可以用vim的宏完成。於是乎錄製了這樣一條宏:
光標定位於首行的行首,按qa開始錄製一條名爲a的宏;
按$鍵移動光標到行尾;
按a鍵進行插入狀態,再按空格鍵在行尾插入一個空格;
按ESC鍵退出插入狀態,再按v鍵進入選擇狀態;
按四次h鍵,向前移動並選中四個字符(即,五筆的四個字母);
按d鍵剪切;
按0鍵移動光標到行首;
按大寫P鍵,將剪切的四個字母粘貼到行首;
按i鍵進入插入狀態,並插入一個空格;
按ESC鍵退出插入狀態;
按j鍵將光標下移一行;
按q鍵停止錄製。

好啦,將光標定位在第二行,直接執行:1300@a,一千二百多行自定義的碼錶就一次性將每行末尾的字母移動到了每行的行首。複製粘貼到wbx.txt的尾巴後,準備工作就吿完成。

 

保險起見,還可再執行一下下面的命令,對文本作進一步的處理,不過我測試,不處理也行:
sort wbx.txt | uniq >> wbx2.txt
上述命令,將文本按每行行首的字母順序進行了排序。
sort wbx2.txt | uniq -d
上述命令,檢測文本是否有重複。其實就算不檢查,執行後面生成輸入法mb文件時,也會自動丟棄有重複的行。

三. 自制過程
簡單點的話,直接在命令行中執行:
$txt2mb wbx2.txt wbx.mb
即可生成帶自定義碼錶的五筆輸入法的mb文件。將該文件拷貝到/usr/share/fcitx/table目錄下,覆蓋掉同名文件,即可使用自定義的五筆輸入法啦。


不過我們還可再多做兩步:
打開/usr/share/fcitx/table下的wbx.conf文件,修改Name[zh_CN]字段的名稱,比如我的,就修改成“劉哥五筆”;再修改IconName字段,將圖標的名字改爲準備工作第1步中自定義圖標的名字,則今後使用輸入法時,就顯示自己定義的圖標啦。

其實,模仿wbx.conf文件的格式,另外寫一個自定義輸入的配置文件,並調用自定義名字的mb文件,就可以不必覆蓋原始wbx.mb文件而生成一個完全單獨存在的輸入法了。

好啦,總體步驟如上,完成這個自定義工作的關鍵與核心,是fcitx的兩條內置命令:txt2mb與mb2txt。只要知道這兩條命令,相信自定義個人專屬輸入法,並不是什麼難事。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章