前言

之前使用的一直都是ibus-sunpinyin中文输入法,但在使用的过程中发现很多的词组都找不到,比较麻烦,所以打算换一下ibus-googlepinyin输入法,还没用,也不知道具体的效果怎么样?不过之前windows系统中用的都是google-pinyin,一直以来都还是比较相信google的服务。本文将从一次安装ibus-googlepinyin拼音输入法的实践入手,探讨常用的输入法框架有哪些,并做一简单的介绍。

ibus-googlepinyin安装

我们先介绍如何安装基于ibus输入法框架的googlepinyin输入法。

由于google官方未提供直接的rpm或其他的直接安装方式,所以我们只能自己编译源码然后安装。由于源码使用的是cmake进行项目管理的,所以我们需要先确定系统是否已经安装cmake。

[gschen@gschen ~]$ cmake -version

cmake version 2.8.10.2

如果未安装cmake,可通过下述命令进行安装:

[gschen@gschen ~]$ sudo yum install -y cmake

接着将介绍一下具体的google拼音安装步骤:

1.安装libgooglepinyin,先获得libgooglepinyin源码,https://code.google.com/p/libgooglepinyin/downloads/list从下载列表中,下载libgooglepinyin-0.1.*.tar.bz2,接着

tar -jxvf libgooglepinyin-0.1.*.tar.bz2

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/usr

make

sudo make install

2. 安装ibus-googlepinyin,同样也是从步骤1中的下载列表中下载ibus-googlepinyin-0.1.*.tar.bz2,接着

tar -jxvf ibus-googlepinyin-0.1.*.tar.bz2

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/usr

make

sudo make install

3. 重启ibus,并在ibus preferences中添加google拼音,至此安装完成,接下来就可以使用googlepinyin了。

输入法框架

首先我们来了解一下常用的输入法框架有哪些?

scim

scim全称是Smart Common Input Method

wikipedia对它的解释是:

The Smart Common Input Method platform (SCIM) is an input method (IM) platform containing support for more than thirty languages (CJK and many European languages) for POSIX-style operating systems including Linux and BSD. It uses a clear architecture and provides a simple and powerful programming interface, which is meant to reduce the time required for developing individual IMs.

scmi是一个输入法平台,在类posix的操作系统如linux和bsd中,它支持至少30种语言。它有一个非常清晰的架构,使用了一个简单但非常强大的编程接口,该接口为我们开发自己的输入法大大的节省了时间。

fcitx

首先我们来看一下官方是如何描述fcitx的:

Fcitx [ˈfaɪtɪks] is an input method framework with extension support. Currently it supports Linux and Unix systems like freebsd. It has three built-in Input Method Engine, Pinyin, QuWei and Table-based input methods.

fcitx一个支持扩展的输入法框架。目前它支持linux和unix系统如freebsd。它有三个内置的输入法引擎,分别是拼音输入法, 区位输入法和table-based输入法。

ibus

ibus的全称是intelligent input bus

同样我们也首先来看一下wikipedia是如何描述的:

The Intelligent Input Bus (IBus, pronounced as I-Bus) is an input method (IM) framework for multilingual input in Unix-like operating systems. It's called "Bus" because it has a bus-like architecture. ibus是在类unix操作系统中是一个为了多语言输入的输入法框架,之所以叫做"bus”原因在于它是一个总线型的架构。

ibus架构

ibus是基于c/s的架构:

他有一个ibus-daemon的后台进程,管理所有的客户端;

所有的engines,panel,config modules和IM(Input Method) clients都是ibus-daemon的客户端;

ibus是基于dbus ipc协议的。

ibus的优势在于:

ibus使用dbus rpc进行通信,客户端可以使用任何一种语言去呵ibus交互;

ibus-daemon, engines, clients&UI这些所有的都运行在独立的进程中。

结论

本文主要介绍了在linux系统中如何安装ibus-googlepinyin中文输入法,在成功安装google拼音输入法之后,并对目前常用的输入法框架做了简单的介绍。

后记

后面如果时间充裕,将会对上述提到的每一个输入法框架展开详细的介绍。

references

linux 输入法框架,常用输入法框架简介 - 微信公众号:算法与编程之美 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. linux 变量引用 和 变量的自动类型转换 c++,c++类型转换 - memristor的个人空间 - OSCHINA - 中文开源技术交流社区...

    C风格的强制类型转换(Type Cast) 不管什么类型的转换统统是:TYPE b = (TYPE)a. 缺点: 可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const ...

  2. 对linux的mv命令设计测试用例,测试用例中的细节 - 八音弦的个人空间 - OSCHINA - 中文开源技术交流社区...

    编写测试用例是在实际测试执行开始之前进行的软件测试活动的重要组成部分.因此,在编写测试用例时必须头脑清晰地理解需求.测试执行阶段的顺利程度主要取决于测试用例的编写质量,还取决于对需求的理解程度.理论上 ...

  3. php微信公众号无限制群发,微信公众号无限群发 - viki_php的个人空间 - OSCHINA - 中文开源技术交流社区...

    /* Author:yf 使用说明:微信公众号无线群发接口,使用实例: $test = new SendAllMsg("你的appId","你的appSecret&quo ...

  4. Linux目录的可写意味着,Linux权限分析 - osc_h5427nyq的个人空间 - OSCHINA - 中文开源技术交流社区...

    在学习Linux的权限之前,我们先来理解几个概念: 可读,可写 .可执行 Linux的文件和目录有以下三种方式: r  .w .x:可读,可写 .可执行 r-可读(read) w-可写(write) ...

  5. 卡券php小程序,微信小程序领取卡券 - osc_88a08cel的个人空间 - OSCHINA - 中文开源技术交流社区...

    微信小程序领取卡券 标签(空格分隔): php 开发前需要准备的工作 1 小程序和公众号要有绑定 2 小程序和该公众号要绑定到同一个开发平台下 [https://open.weixin.qq.com/ ...

  6. php 小程序 运动步数_小程序同步微信步数 - xiangqian1的个人空间 - OSCHINA - 中文开源技术交流社区...

    小程序获取微信运动步数,咱们看文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeRunDat ...

  7. php框架大全图解_PHP框架汇总 - 鱼煎的个人空间 - OSCHINA - 中文开源技术交流社区...

    PHP C 扩展 (Phalcon)https://phalconphp.com/zh/ Zephir/C 扩展的加载与 PHP web 服务器守护进程启动进程一次 类和函数提供的扩展都准备好要使用的 ...

  8. python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...

    mqant mqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即 ...

  9. python网络开发框架_greenev首页、文档和下载 - Python网络服务框架 - OSCHINA - 中文开源技术交流社区...

    greenev是一个基于greenlet协程,事件驱动,非阻塞socket模型的Python网络服务框架,它使得可以编写同步的代码,却得到异步执行的优点.reactor模式采用基于epoll, kqu ...

最新文章

  1. 扩增子文献笔记1白杨内生和根际微生物组在不同生态位存在特异的群落结构
  2. linux编程技术进程代码,Linux进程通信—信号量 代码实现
  3. linux脚本运行错误:$'ls\r': command not found
  4. how to create Employee in SAP Cloud Platform
  5. 经验从哪里来?从痛苦中来!
  6. PHP mysql_real_escape_string() 函数防止数据库攻击
  7. 14004.xilinx自动打包image.ub脚本
  8. 数据的中心值:均值、中位数、众数
  9. 配置和调试EIGRP
  10. Flink – submitJob
  11. 蓝懿iOS培训日志11 递归
  12. Tomcat 7 安装教程 + eclipse配置Tomcat
  13. eoc机顶盒wifi服务器未响应,网络机顶盒中桌面配置服务器
  14. 技术人员的会议优化记录
  15. 操作系统——内存交换技术
  16. sofelf转jic
  17. Excel 按照某一列不同内容插入分页符号
  18. CSAPP:archlab
  19. 【春晚歌星】著名歌唱家拉齐献声人气民族好歌
  20. Oracle 不能删除存储过程的处理

热门文章

  1. Everyone Piano v2.2.10.16 WiN 电脑键盘钢琴模拟软件
  2. 追求思考的深度与条理清晰地阐述
  3. Windows Server 2022 安装Intel I219V 服务器网卡
  4. joinquant量化投资震荡类指标模型的MACD指标是什么?
  5. 山东企业办理体系认证大盘点
  6. 动态壁纸安卓_兼容所有安卓手机,MIUI12的超级壁纸独立安装教程来了
  7. FIR滤波器学习设计笔记
  8. 武汉科技大学机械原理课程设计——飞剪机构尺寸设计matlab语言
  9. 办公自动化打卡 task01
  10. 【linux报错解决】ECDSA host key for X.X.X.X has changed and you have requested strict checking