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 好太多了,现在感觉倒过来了 (:

Tagged with:  
  • http://watashi.ws/blog/ watashi

    无比仰慕,学长好长

  • http://shiningray.cn/ ShiningRay

    正好我符合你说的要求

    linux ibus 双拼

  • http://lihdd.net quark

    @ShiningRay : 难得啊…… ^_.

  • kei

    linux ibus 双拼 应该不少吧
    双拼多简单啊 我手机上也用点讯的双拼

  • xxz01

    您好,不知道,您能不能改成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 但还不完善,谢谢

  • http://lihdd.net quark

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

  • xxz01

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

  • http://lihdd.net quark

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

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

  • xxz01

    哦..是这样,不过还是谢谢了

  • 飞狐在天

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

  • http://lihdd.net quark

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

  • uli

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

    • http://lihdd.net quark

      @uli :
      谢谢关注 :)

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

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

  • peng

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

  • http://oppih.realax.me/ oppih

    支持~我刚写了个这个输入法的文章呢。

    准确率相当之高~

  • hemon

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

  • http://www.open-fashion.com 浪子

    排版酷似可能吧。

    • http://lihdd.net quark

      @浪子 : 哪里相似了 -,-bb

  • http://tanklao.wordpress.com Tank

    好东西,太给力了!
    能不能帮我看看我关于输入法的建议能否实现不?
    http://wubi.sogou.com/bbs/viewthread.php?tid=146765

    • http://lihdd.net quark

      @Tank : 我觉得双拼已经是挺好的了,你那个设计比双拼要多输入许多字母…

  • http://tanklao.wordpress.com Tank

    我的重点是增加笔形辅助输入,这个对于南方人来说太重要了。

  • http://zms.me 御风

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

    只收到 -x参数。

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

    • http://lihdd.net quark

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

  • http://www.henix-blog.co.cc/ henix

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

  • Anbo724

    你好 不知道您有没有研究过在windows上的云输入法,求教