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。只要知道这两条命令,相信自定义个人专属输入法,并不是什么难事。

 

 

转载于:https://www.cnblogs.com/GarfieldTom/p/11113354.html

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐