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

Linux安装fcitx输入法(命令安装)的更多相关文章

  1. Fedora 19安装Fcitx输入法并安装搜狗输入法资源包

    系统自带的Ibus输入法非常的不好用.在Sublime Text下中文根本不能输入.于是想着换成Fcitx. 1.先卸载系统自带的Ibus输入法 sudo yum remove ibus gsetti ...

  2. Fedora20安装fcitx输入法

    Fedora20安装fcitx输入法 Fedora20默认安装的是ibus输入法,总有一些原因让我们选择fcitx输入法: ibus出词顺序有bug 在输入人名的时候,有些名字输入两三次后还是不会出现 ...

  3. ubuntu14.04 的ibus不能卸载(安装fcitx输入法框架时可能有这个需求)。出现无system setting有用程序

    每年的ubuntu新版本号公布,都会吸引一大批热血青年. 关注越多也让ubuntu越来越好了. 使用ubuntu的人都会在安装系统之后马上安装顺手的输入法,也可能不会.看人. 安装输入法,对于中文输入 ...

  4. Ubuntu 18.04安装fcitx输入法

    1.卸载ibus及所有组件 ----------------------------------------------------------------------------------- ro ...

  5. linux mint17.2 安装fcitx输入法

    mint17刚出的时候,曾经在虚拟机上体验过. 现在决定好好学习linux,再加上实在是太萌mint,就在虚拟机上安装了mint17.2 开始配置fcitx输入法: 添加ppa: sudo add-a ...

  6. [fedora21]给fedora21安装fcitx输入法

    如果已经安装了ibus,需要卸载ibus:   sudo yum remove ibus; 安装fcitx: sudo yum install fcitx fcitx-pinyin fcitx-con ...

  7. [原] ubuntu安装Fcitx输入法

    1.终端输入: sudo add-apt-repository ppa:wengxt/fcitx-nightly 按回车确认添加 2.sudo apt-get update 更新软件源 3.sudo ...

  8. fedora22 安装fcitx 输入法

    <h4>安装fcitx:</h4><blockquote>sudo yum install fcitx fcitx-pinyin fcitx-configtools ...

  9. Linux CentOS7通过yum命令安装Mono(尝先安装模式)

    前言 经过尝试网上各种安装mono的技术贴,这个安装过程经历了大约2周,尝试了各个版本,几目前博客所描述的所有安装方式.以下内容的安装方式可以为你尝试不同版本的mono.并非正式环境安装标准方式安装. ...

随机推荐

  1. Laravel - Method [xxx] does not exist on [xxx]

    The controller is existing, and the method 'test' exist on 'App\Http\Controllers\Admin\IndexControll ...

  2. 【Netty】Netty的Hello World程序之Discard Server

    一.有关Discard Server的说明 世界上最简单的协议(程序)不是“Hello, World!”而是Discard(丢弃).它是一种丢弃任何接收到的数据而没有任何响应的协议. 要实现丢弃协议, ...

  3. (一)MongoDB安装

    (一)MongoDB安装 mongodb 2018年03月06日 15时53分29秒 安装准备 启动mongodb 1.命令行参数启动 2.从配置文件启动 使用服务启动mongodb 参数解释 用户授 ...

  4. MongoDB安装启动教程

    MongoDB安装启动教程 简易教程:鉴于第一次大家使用分布式数据库,提供一个简易教程(也可看老师的PPT或者视频) 1.点击安装包(老师给的),安装目录不要更改,否则后面配置需要改,可能导致装不上 ...

  5. ValueError:GraphDef cannot be larger than 2GB.解决办法

    在使用TensorFlow 1.X版本的estimator的时候经常会碰到类似于ValueError:GraphDef cannot be larger than 2GB的报错信息,可能的原因是数据太 ...

  6. thrift rpc通信

    thrift rpc通信 框架 别人的简历: 负责抓取程序的开发和维护,对抓取内容进行数据提取.整理.1.定向数据抓取程序的维护和开发,了解了Sqlite数据库.Thrift服务和多线程的开发调试.2 ...

  7. javascript Date format(js日期格式化) 转载

    本文转载地址http://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.html // 对Date的扩展,将 Date 转化为指定格 ...

  8. 前端性能----CDN

    Content Distribute Network(内容分发网络)是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调度等功能模块,使用户就近获取所需内容 ...

  9. git更换仓库,保留分支,保留提交记录及开发权限

    别人推荐的方法都很复杂,这个步骤自己亲自尝试过,非常简单好用. 1.从原地址克隆一份裸版本库,比如原本托管于 GitHub. git clone --bare https://github....(原 ...

  10. 如何为MacOS X终端设置代理

    http://codelife.me/blog/2012/09/02/how-to-set-proxy-for-terminal/ 本文介绍如何在MacOS X终端里使用代理访问网络,虽然只在Moun ...