[放到这儿来,只是为了备份]

不知道是什么年月的事情,我鬼使神差地喜欢上了郑码,虽然一直没有人为郑码开发出形形色色的智能输入法,但我也用惯了,可是当我换上Linux后,发现基本上没有提供这个Windows自带的形码输入法,搜寻了很多Linux发行版上的中文输入法,发现只有红旗Linux是自带郑码输入法,可恶的是红旗没有公开它的输入法源码,且用了一段时间红旗4.0觉得不爽,做得太傻,且会无缘无故地崩溃。于是我尝试着将红旗的输入法装到其它发行版的Linux上,不是装不上,就是装上去将KDE搞死,动也不能动。终于绝望:(后来我找到了小企鹅输入法,用了觉得很不错。经过一番改造,将其五笔换成了郑码,现将过程写下,以与大家分享经验:)
到http://www.fcitx.org的网站上下载:http://www.fcitx.org/download/fcitx-2.0.1.tar.bz2输入法的源程序。
在http://www.fcitx.org的网站上下载:http://www.fcitx.org/download/wbfh.mb.tar.bz2。
在你的Windows操作系统中找到:imegen.exe文件。
安装小企鹅输入法:

# bzip2 -d fcitx-2.0.1.tar.bz2

# tar xvf fcitx-2.0.1.tar

# cd fcitx-2.0.1

# make clean ; make ; make install

假设你已经用的是汉化版的Linux,那就找到/etc/X11/xinit/xinitrc文件
将其中原先的输入法自启动脚本去掉,比如我的操作系统是Turbolinux10.0,我就将该文件中的如下一段:

        elif [ "${LANG%%.*}" = "zh_CN" ] ; thenif [ -x /usr/bin/scim ]; then/usr/bin/scim -dexport XMODIFIERS="@im=SCIM"fi

修改为:

        elif [ "${LANG%%.*}" = "zh_CN" ] ; thenif [ -x /usr/bin/fcitx ]; thenexport XMODIFIERS="@im=fcitx"/usr/bin/fcitxfi

这样就完成了一进入图形界面就自启动小企鹅输入法,用Ctrl + Space就可以调出,Ctrl + Shift可以在拼音和五笔间切换。
增加一些特殊符号的码表:

# bzip2 -d wbfh.mb.tar.bz2

# tar xvf wbfh.mb.tar

# cp wbfh.mb /usr/share/fcitx/

**下面是想办法将/usr/share/fcitx/wbx.mb给替换成郑码的码表: **
用imegen.exe将你机器中C:\WINDOWS\system32\WINZM.MB文件转成zm.txt文件。由于这个格式和wbx.mb的格式不一样,是中文字或词后紧跟编码,有些是一个编码,有些是二个编码。而小企鹅输入法的wbx.mb文件是一行一个编码,空格后跟中文的字或词。所以我就写了小程序转换了一下,开始想用标准C写,后来觉得还是C#方便,就叫我一兄弟花了十分钟给我写了一下,下面是C#的源码:

using System;
using System.IO;namespace MBConvertor
{class MBConvertor {static char[] asiic = new char[26];[STAThread]static void Main(string[] args) {if(args.Length==0){Console.WriteLine("Usage: MBConvertor srcfile dstfile\r\nAuthor:Liteng copyright@2004-01-19";return;}String sample = "abcdefghijklmnopqrstuvwxyz";asiic = sample.ToCharArray();StreamWriter sw = new StreamWriter(args[1]);sw.AutoFlush = true;int counter = 0;try{using(System.IO.FileStream fs = new FileStream(args[0],FileMode.Open,FileAccess.Read,FileShare.Read)){using(StreamReader sr = new StreamReader(fs)){while(true){String ln = sr.ReadLine();if(ln == null)break;try{int flag = ln.IndexOfAny(asiic);String chinese = ln.Substring(0,flag);String english = ln.Substring(flag);String[] lns = english.Split(' ');foreach(String str in lns){sw.WriteLine(str + " " + chinese);}}catch(Exception ex){Console.WriteLine(ex.ToString());continue;}counter++;}}}sw.Close();Console.WriteLine("Convert works done,total lines of source file converted:" + counter);}catch(Exception ex){Console.WriteLine(ex);}}
}
}

转换的时候有点问题,就是C#读进去的文件得是UNICODE的,我先用UltraEdit将zm.txt转成UNICODE的,再用C#小程序转成zm1.mb文件,然后用Notepad打开zm1.mb,将其重新存储为zm.mb,格式选的是ANSI,这样将这个文件传到Linux机器上。

生成的zm.mb文件,将这个文件直接覆盖/usr/share/fcitx/wbx.mb,然后重启X-Window就行了。

要注意的是五笔中有个z功能键,得在~/.fcitx/config文件中将其去掉。就是打开这个文件将
Z模糊匹配=1改为0

这样,总算可以用了,如上不当之处,还请大虾指正。

[2004年旧文]我是如何搞定Linux上的郑码输入法[原创]相关推荐

  1. liunx上mysql源码安装mysql,搞定linux上MySQL编程(一):linux上源码安装MySQL

    [版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 1. 首先下载源码包: ftp://ftp.jaist.ac.jp/pub/m ...

  2. 【干货知识】Redis:从应用到底层,一文帮你搞定

    1.基本类型及底层实现 1.1.String 用途: 适用于简单key-value存储.setnx key value实现分布式锁.计数器(原子性).分布式全局唯一ID. 底层:C语言中String用 ...

  3. 【全网最全】一文搞定 Linux 压缩、解压哪些事儿

    一文搞定 Linux 压缩.解压哪些事儿 Linux 常用的解压和压缩命令如下: 1..tar # 解包 tar xvf FileName.tar # 打包 tar cvf FileName.tar ...

  4. 渲染预览PDF文档,轻松搞定,这方案真香!

    渲染预览PDF文档,轻松搞定,这方案真香! 1.前言 2.列举一些文档预览解决方案: 3.列举一些文档解析生成解决方案: 4.案列赏析 5.准备工作: 6.模板讲解: 7.代码实现: 8.效果图: 9 ...

  5. linux 密码复杂度,用PAM 搞定Linux 平台密码复杂度问题

    用PAM 搞定Linux 平台密码复杂度问题 星期五, 十二月 27, 20130 作为一个PAM的一个模块,pam_cracklib可以被用来检查密码是否违反密码字典,这个验证模块可以通过插入pas ...

  6. linux shell find depth,搞定 Linux Shell 文本处理工具,看完这篇集锦就够了

    原标题:搞定 Linux Shell 文本处理工具,看完这篇集锦就够了 Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替.既然是基本功,那就需要掌握,毕 ...

  7. 一天搞定Linux常用的基本命令!!!

    ★一天搞定Linux常用的基本命令!!! tips:更改主机名:hostname 目录管理 记录使用:绝对路径.相对路径 cd : 切换目录命令! ./ : 当前目录 cd - : 返回上一级目录 创 ...

  8. windows mobile linux,搞定linux下与windows mobile 5手机的同步

    搞定linux下与windows mobile 5手机的同步 发布时间:2008-03-24 21:09:17来源:红联作者:tearsjuly 总算是搞定了,步骤很烦琐(需要的东西太多).我的手机是 ...

  9. 9月29日云栖精选夜读 | 17个案例带你3分钟搞定Linux正则表达式

    正则表达式是一种字符模式,用于在查找过程中匹配制定的字符. 元字符通常在Linux中分为两类: Shell元字符,由Linux Shell进行解析: 正则表达式元字符,由vi/grep/sed/awk ...

最新文章

  1. 更改WSSv3站点集访问地址
  2. WEB 前端跨域解决方案
  3. 轻松处理高于平常10倍的视频需求,还能节省60%的IT成本,蓝墨做对了什么?
  4. ActiveRecord多表查询
  5. 信用卡不能提额,是因为使用了招联金融吗?
  6. C语言中quot;##quot;的独特用法
  7. Oracle 11g 新特性 -- 自适应游标共享(Adaptive Cursor Sharing: ACS) 说明
  8. 刘良华(1969-),男,宁波市智慧城市规划标准发展研究院研究室副主任.
  9. SpringCloud工作笔记102---苞米豆mybitis增强工具
  10. android每秒 1,在Android 5.1中调度每秒的警报
  11. c语言字母等腰三角形边框,用C语言编写一个四行*等腰三角形
  12. lingo_java_Lingo 12
  13. Linux中常用查看日志命令
  14. word流程图怎么做虚线框_Word2016如何制作虚线文本框?
  15. 宝塔面板解除强制绑定手机账号限制教程
  16. 区块链在供应链金融中的应用分析
  17. 手把手教你在Linux上上搭建BitTorrent服务器
  18. 网络OSI(七层模型)
  19. 如何调整PDF的页面布局
  20. 【云原生】Prometheus+Grafana on K8s 环境部署

热门文章

  1. 肖特基二极管【SBD】的工作原理
  2. 从行、列向量与坐标转换矩阵说起
  3. 通付盾再获区块链密码发明专利授权,区块链密码落地显实效
  4. Boost PFC参数计算——PFC电感
  5. [前端] 实现单行文本溢出和多行文本溢出省略
  6. softmax 分类器
  7. 如何构造PKCS 7签名(一)
  8. 手动安装MySQL和彻底删除MySQL
  9. redis 端口号为什么是 6379
  10. js实现电话号码部分隐藏