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

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

打開終端
安裝輸入法linux

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

設置fcitx爲默認輸入法:ubuntu

im-switch -s fcitx

註銷,從新登陸vim

 

若是安裝碼錶轉換的話須要安裝windows

sudo apt install fcitx-toolsmarkdown

將須要使用的輸入法的碼錶文件拷貝到這個目錄便可。框架

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發行版的默認輸入法。.net

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

前一段時間在折騰命令行模式下的中文輸入問題,想到本身windows下的碼錶文件無用武之地,終究以爲有些不甘心,再想到fcitx輸入法已經發展了這十餘年,說不定能夠進行我的性質的自定義了吧?一查資料,果真能夠!因而乎,花了兩天時間,在linux下利用fcitx,自制了本身專屬的輸入法。估計會有朋友也須要相似這樣自定義本身的輸入法,因此將自定義的步驟記錄以下。

二. 準備工做
一、準備好一個48*48的png圖標文件,用來看成自制輸入法的圖標。該圖標應該位於/usr/share/fcitx/imicon目錄下。
二、將本身熟悉的輸入法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。只要知道這兩條命令,相信自定義我的專屬輸入法,並非什麼難事。

相關文章
相關標籤/搜索