Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux下成功安装郑码输入法

不知什么时候起郑码输入法 ,虽然一直没有人为郑码开发出形形色色的智能输入法,但我也用惯了,可是当我换上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文件,如果没有,谁要给我发E-mail。安装小企鹅输入法:# 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" ] ; then
if [ -x /usr/bin/scim ]; then
/usr/bin/scim -d
export XMODIFIERS="@im=SCIM"
fi
修改为:
elif [ "${LANG%%.*}" = "zh_CN" ] ; then
if [ -x /usr/bin/fcitx ]; then
export XMODIFIERS="@im=fcitx"
/usr/bin/fcitx
fi
这样就完成了一进入图形界面就自启动小企鹅输入法,用Ctrl + Space就可以调出,Ctrl + Shift可以在拼音和五笔间切换。6) 增加一些特殊符号的码表:
# bzip2 -d wbfh.mb.tar.bz2
# tar xvf wbfh.mb.tar
# cp wbfh.mb /usr/share/fcitx/7) 下面是想办法将/usr/share/fcitx/wbx.mb给替换成郑码的码表:
用imegen.exe将你机器中C:WINDOWSsystem32WINZM.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 Author: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文件有谁要,请给我E-mail,将这个文件直接覆盖/usr/share/fcitx/wbx.mb,然后重启X-Window就行了。9) 要注意的是五笔中有个z功能键,得在~/.fcitx/config文件中将其去掉。就是打开这个文件将Z模糊匹配=1改为0这样,总算可以用了。 Ubuntu7.10服务器配置学习笔记Ubuntu7.10技巧:在Compiz中配置菜单透明效果(图)相关资讯      Linux技巧  Linux输入法 
  • 搜狗Linux输入法2.0发布 Ubuntu用  (10/19/2015 07:28:53)
  • Linux 目录导航技巧  (07/18/2014 08:29:50)
  • 8个有趣的Linux提示与技巧!  (01/31/2014 08:06:39)
  • Linux技巧分享:如何检查PDF中使用  (08/27/2014 19:11:58)
  • [技巧分享]如何在Linux中阻止其它  (06/29/2014 19:56:43)
  • Linux技巧:一次删除一百万个文件  (06/13/2013 11:11:05)
本文评论 查看全部评论 (0)
表情: 姓名: 字数