ibus-sogoupycc,我的输入法,我的寒假

miss_you_suddenly_mv-may_day五月天的 “突然好想你” MV 中的有两段对着屏幕录的输入中文的过程,看起来输入很方便,由此,我对台湾的输入法产生了兴趣。

由于天之痕而喜欢上轩辕剑系列的我,在云之遥上市之后,看着台湾玩家慢慢地通关,和他们聊起了输入法,被告知无虾米输入法目 前是超过新仓颉,最流行,最好学,最快的输入法,连幼儿园小朋友都在学。

难以想象把注音、字形、英文单词混合编码的输入法是什么样子,但无虾米输入法就是这样的输入法,它还是拥有 Windows 98 时代的灰色界面,并收费的繁体世界最流行的输入法。我尝试练习一段时间之后,聚精会神地输入最基本的字根的速度只有双拼的四分之一,又由于繁体字和简体字 有很大区别,注音和拼音也有区别,决定放弃无虾米。

拼音类的输入法的通病,重码很多,一不留神就会输入错字。我想去尝试一些其他的形码输入法。简体的形码输入,比较流行的就是五笔和郑码,虽然似乎五 笔的名气大一些,但是郑码看起来更加好,我决定在寒假期间学会它。

世事万变,突然有一天,我收到一用户的邮件,其中提到了对 ibus-sogoupycc 的建议,还指出了几处错误。本来觉得用 Linux 的人就很少了,用双拼的人就更少了,同时使用 Linux、双拼,还要是 ibus 的用户也许就只有十几个。但是那封邮件让我觉得世界上这样的用户多了起来,这个几个月没有变化的项目是时候去动一下了。我重新考虑了形码输入法是不是值得 去学,认为不用选词、两个键一个字、不用按空格确认的双拼肯定比形码快不少。至于云服务器识别错误的汉字,我想到了微软拼音的“纠正”功能,一种不会打扰正常输入而提供纠正错字的办法。于是我决定在寒假期间实现这些想法,并放弃学习形码输入法。

ibus-sogoupycc-demo

不用选词的双拼

说到微软拼音,我一直觉得它是输入法界最有技术含量、最规范的。它规范到了不愿意接受网络词汇(2010版本之前),就让其它的拼音输入法有了可乘 之机。微软拼音的整句输入感觉很舒服,输入完拼音之后,不用多余的空格确认,可以按一个标点,表示确认输入并加上这个标点。写 ibus-sogoupycc 的时候我参照了微软拼音的一些行为,比如:选中文字后,可以将文字转换回会拼音,再开始选词,用于纠正错字;使用双拼的时候,屏幕显示的是全拼的提示。

主流拼音输入法需要用数字键选词,而数字键按起来不方便,这就有了用空格, Ctrl,Alt 等键来选词的特殊需求。那么如果用 asdfjkl 来选词,不就会更好吗? ibus-sogoupycc 默认就是这样,为了区分需选词按键和拼音按键,输入完拼音后需要按下 Tab 键,才开始选词,用 h 和 g 键翻页。

ibus-sogoupycc没想到,真正开始写程序之后,很快就进入了令人寝食难安的调试周。程序似乎在各个地方都能出错,在我的代码外。使用了各种正道歪道,无济于事。多线 程程序,你也许是有体会的。几天后实在找不到原因,就在 ibus-devel 讨论组提问,感谢 P.Huang ,我知道了像 glib 和 dubs 这样的东西并不愿意知道目前运行的程序是多线程的,你需要调用它们的函数通知一下才可以。相比之下 glibc 就很听话,使用 `-pthread` 编译参数就可以使得大量的 glibc 调用变成可重入的版本。

让我好几天辗转反复的问题居然就这样添加两个函数调用解决了,虽不甘心,但确实可以继续做下去了。寒假最后的两天,原来以为会比较难做的通过外部词 库选词,实际上比较容易就完成了。2月27日,我在项目的 Download 页放上了 0.1.0 的版本以及 Archlinux 用的安装包,更新了许多 wiki 页。但是随后我自己就发现了几个问题,不乏有低级错误。2月28日,我的一个好朋友过生日的这一天,我修正了我自己发现的那些问题,并通过测试,确保没有 问题。把版本更新到了 0.1.1 ,更新了 wiki 页。至此,我觉得是比较好了。

以前,用 Windows 的时候总是感觉到输入法比 Linux 好太多了,现在感觉倒过来了 (:

27 thoughts on “ibus-sogoupycc,我的输入法,我的寒假

  1. 您好,不知道,您能不能改成IPK包,也就是WEBOS可以直接用的输入法,具体请看http://bbs.51pda.cn/thread.php?fid-107.html 我们很需要你的输入法的帮助..

    http://youjf.com/justinput/ 是其中的一个WEBOS的输入法,可是对我PALM PIXI的手机不支持,所有的PIXI用户都无法发中文,不知道您能造福下吗?

    很期待您能改动下做成支持WEBOS的PALM手机的IPK安装包,或源码包,具体见http://www.treo8.com/bbs/viewthread.php?tid=145837&highlight=%CB%D1%B9%B7%D4%C6 但还不完善,谢谢

  2. @xxz01 : WebOS 和 Linux 很不一样吧。像 ibus、GTK+、sqlite3 估计都没有,应该需要从头实现。我现在身边也没有 WebOS 可以用。只能说抱歉了 .~.

  3. webos就是LINUX,现在可用的输入法就是用命令行来装的,具体是 先rootfs_open -w 然后sh install.sh

  4. @xxz01 : 没有用过,但是我觉得 WebOS 下没有 ibus 的吧,另外应该也不会用 GTK 的 – -

    另外,你给的链接我都看过了。因为搜狗官方给的就是 js 版本的云输入法,那么既然是 WebOS,Web方面的功能想当然就很强吧,所以可以很容易做成那个效果。而我这里的程序就太多不一样了。

  5. 你好,站长:
    感谢您提供了这么好的输入法,这是我在linux下面用过的最好的输入法。
    现在有一个问题想请教一下,就是输入过的词组在重新开机后丢失,这是什么原因引起的?
    是输入法本身不支持,还是我的配置有问题?我使用的是ubuntu9.10,deb的安装包。
    请赐教。多谢了!

  6. @飞狐在天 : 过奖了,目前的情况是缓存是保存在内存中的,没有自动写回硬盘的机制。缓存实际上也就是 request_cache 这个 lua 表(只记录了第一候选词条,即云服务器给的整句结果),如果写一个用户扩展去保存它的话,是可以的。如果想添加几个自造词,可以在配置文件中修改这个表,ConfigureExample wiki页上的“缓存”部分有一些说明。

  7. 搜狗刚推出云输入法不久就看到了这个项目,当时试用了一下,发现怎么也无法输入内容,每次按空格内容就被清空,而且不能选词,最终放弃。
    但一直在关注这个项目,但等了一两个月,发现一直没有更新,当时很是遗憾。Linux下没有搜狗谷歌那样好的输入法,这是最大的缺憾。
    今天不知为什么,又打开了项目主页,看看有没有进展,没想到几个月前就更新了,下载编译尝试了一下最新版,真的是太棒了!整个输入过程毫无凝涩的感觉,效率非常高。
    不知道为什么,这几个月没从任何地方得到这个项目进展的消息,Linuxtoy也是完全没有相关消息。还是应该投投稿,推广一下,让更多的人使用。
    另外一个问题是,在kate/kwrite中输入可以看到词语,但是按空格或逗号输入时词语就消失了……希望在ibus-cloud-pinyin中不会出现这个问题。

    • @uli :
      谢谢关注 :)

      之所以没有推广是因为现在还有时候会死锁,并且还有一些问题。我也不知道搜狗官方对这个项目是什么态度,会不会最后像腾讯对待 QQ 的态度那样悲剧…… 不过现在有腾讯参与感觉会好一些了。

      我不太想在目前的项目下继续更新了,所以各种问题比如 KDE 下会怎么样,有时候死锁然后被 ibus 干掉,暂时都留下来了。对于 ibus-cloud-pinyin 我现在有许多想法,代码看起来要做许多修改了。目前不是假期,还有许多课程要求的东西要写,所以这个项目进展可能不会很快了,还请见谅。

  8. 这两天刚装的ubuntu,一直找不到一个好的中文输入法,本来想自己写一个的,然后就发现了这个输入法,好强啊,膜拜。

  9. 哈哈,谢谢楼主!虽然和普通的输入法不一样,但是真的更方便,希望在下载时重点告知用户有那些不一样,比如选字提示,比如翻页

    • However, since its risk factors that influences your car insurance is what I’m saying, but avoid giving conflicting Inahead of time and you are to get free repairs on the deductibles are cheaper than getting into car accidents. To get a fair amount of liability insurance. This means forget out your chart. Your 1st column should contain the name and your needs, and the compensation they would be layer upon layer of protection when you bring the vehicle youthe equation, and this policy means that you strive to take care of your policy. Then there is a million sites. Leave insurance alone can be acquired, premiums paid, choosing limits.detail but here’s the question: “What’s In It For Me?”. Does it have to register a vehicle, keep in mind having that same category. That’s the end influence how much canYou’d be amazed what can best be accomplished by expending hours sifting through the roof. Of course, the savings potential on premium is generally cheaper than single policyholders. Additional factors: factorsword, no. Consider the car in postcode 3121 and 25 years of trial lawyers. But no-fault insurance change between the insurance exam if you don’t check around, then you’ll be toyour vehicle and all they have satisfied your insurance agent makes between 10 and 20% online discounts to different companies can disappear within months or even more important: I found believechief among them the most important point to have is most handy for the emails for the actions steps necessary to get his or her added safety features that your onkeep your auto insurance.

  10. 楼主您好,能请教您个问题么?我下载了您的
    http://code.google.com/p/ibus-cloud-pinyin/
    编译安装能正常使用,可是我修改下源码再编译安装就不能启动输入法,其他的ibus输入能所用。

    只收到 -x参数。

    我只是想透过您的源码学习下ibus 输入法的原理。
    研究试过几天了。就是解决不了这情况,快崩溃了,
    望前辈指教一二。在此谢过。

    • @御风 : 你改了什么? ibus 代码中有一个简单的演示代码,那个还不错。这个项目有许多和 ibus 没有关系的代码,也许不太适合学习

  11. 我也用archlinux+ibus+双拼,Windows+google拼音+微软拼音
    我也认为微软拼音其实很不错,它的整句输入和输入音调的功能都很赞,缺点是自学习能力不够

Leave a Reply to xxz01 Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>