打开终端
安装输入法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。只要知道这两条命令,相信自定义我的专属输入法,并非什么难事。