Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1120839
  • 博文数量: 82
  • 博客积分: 3362
  • 博客等级: 中校
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-05 16:27
文章分类

全部博文(82)

文章存档

2011年(1)

2010年(19)

2009年(62)

我的朋友

分类: LINUX

2010-03-27 16:28:30

说是在某些情况下,是因为我在两个机器上一个可以正常使用一个却不可以,不太确定是不是程序版本的问题,不过我现在可以通过关闭这个叫做 preedit 的东西来解决这个问题。原本因该像 SCIM 那样可以有一个选项选择关闭的,不过 ibus 的选项面板里还没有加入这个选项,于是我就直接暴力地修改一下好了,打开/usr/share/ibus-pinyin/engine/pinyin.py ,找到 update_preedit 函数的定义:

def update_preedit(self, preedit_string, preedit_attrs, cursor_pos, visible):
    if preedit_attrs == None:
        preedit_attrs = ibus.AttrList()
        attr = ibus.AttributeUnderline(ibus.ATTR_UNDERLINE_SINGLE, 0, len(preedit_string))
        preedit_attrs.append(attr)
 
    super(PinYinEngine, self).update_preedit_text(ibus.Text(preedit_string, preedit_attrs), cursor_pos, visible)

废掉它,比如,在第一行加一个 return 或者把最后一行的 super 调用注释掉。保存之后在 ibus 的托盘图标那里选择 restart 就可以了。

不过这样的暴力修改也是有一些副作用的,因为 ibus-pinyin 对于不合法的拼音片段并不会在面板上显示出来,比如 i ,关闭 preedit 之后在中文状态下输入 i 看不到任何反馈,不过这几乎不影响使用,而且我觉得这似乎是 ibus-pinyin 在显示的设计上需要修改的地方,对于一些习惯直接输入单词再回车上屏的人估计就不太方便了。

总的来说,ibus-pinyin 还是一个不错的输入法的,希望能好好发展,争取让 Linux 下的输入法不要再和 Windows 下差距那么大。

阅读(502) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~