Fcitx--企鹅输入法广受Linuxer们的喜爱,我本人也被其小巧/简洁所吸引.
不过在用了一段时间后,发现Fcitx有个小毛病,就是在中文输入状态下,如果我要输入英文单词,并且这个单词以小写字母开头,中间夹着大写字母,这时输入的大写字母就直接输入到编辑器中了,而不是在输入窗口中,这样最终输入的单词就是错位的.也许表述不是很明确,下面贴上图(输入英文"autoEng.c"):

Fcitx在中文输入状态下,如果第一个字母是大写的话,其将自动进入英文输入状态.于是,我就想对其进行一些改造,使其能够在中文输入的状态下输入大小写混用的英文单词(开头是小写字母).
首先,到Google Code上下载Fcitx的源码(http://code.google.com/p/fcitx/downloads/list),我下载的是fcitx-4.1.1_all.tar.bz2.
解压后,进入Fcitx的解压目录,使用vi编辑文件"src/module/autoeng/AutoEng.c",并定位到185行,或是含有如下IF语句的行:
if (autoEngState->owner->input.iCodeInputCount == 0 && IsHotKeyUAZ(sym, state))
将该if语句修改成如下所示:
if (/*autoEngState->owner->input.iCodeInputCount == 0 && */IsHotKeyUAZ(sym, state))
{
/*autoEngState->index = 1;
autoEngState->buf[0] = sym;
autoEngState->buf[1] = '\0';*/
autoEngState->buf[autoEngState->index++] = sym;
autoEngState->buf[autoEngState->index] = '\0';
*retval = IRV_DISPLAY_MESSAGE;
input->bShowCursor = false;
autoEngState->index = strlen(autoEngState->buf);
autoEngState->active = true;
ShowAutoEngMessage(autoEngState);
return true;
}
AutoEng.c文件是用于控制在中文输入法下何时进入英文输入状态,从代码中可以看到,原来判断英文输入状态是通过第一个字母是否为大写来判断的,如果是第一个输入且为大写字母,则进入英文输入,否则,就是中文输入.
在这里,我只需要判断输入的字母中是否有大写字母,如果有大写字母,则也进入英文输入,而不管其是否是第一个输入,并让其紧接着前面的一起构成要输入的英文单词.
修改完毕后,运行如下命令,对fcitx进行重新编译和安装:
$ cmake . && make && sudo make install
退出Fcitx并通过终端输入fcitx命令启动企鹅输入法,然后,在输入大小写混合的英文单词时,你会发现,你成功啦!
下面是截图(仍然输入英文"autoEng.c"):


- 大小: 10.8 KB

- 大小: 11.1 KB
分享到:
相关推荐
对于习惯使用Linux系统但又需要高效中文输入的用户来说,Fcitx是一个理想的解决方案。 然而,值得注意的是,由于Fcitx是一个社区驱动的项目,不同版本可能存在一些已知或未知的问题。在遇到问题时,用户可以通过...
### fcitx4.0.pdf – Linux小企鹅输入法帮助文档 #### 一、软件概述 小企鹅输入法(FreeChinese Input Toy for X,简称fcitx)...通过详细的安装指南和功能介绍,用户可以轻松掌握fcitx的使用方法,提高中文输入效率。
### X-win32环境下使用中文输入法:fcitx配置详解 ...这种方法不仅解决了远程连接Linux时中文输入失败的问题,而且也为其他类似的输入法配置提供了参考思路。希望本文档能帮助更多用户解决类似的技术难题。
在Linux系统中,特别是对于那些需要输入中文的用户,安装一个合适的输入法系统是至关重要的。本篇将详细讲解如何在CentOS5这个古老的Linux发行版上安装fctix输入法,这是一种流行的开源输入法框架,支持多种输入法,...
每种输入法框架都有其特色和优势,用户可以根据系统环境和个人偏好来选择合适的输入法解决方案。 总的来说,Linux的X Window环境虽然与Windows或其他图形环境在某些方面有所不同,但通过fcitx等工具,中文用户依然...
解决方法是在当前用户下执行命令: ```bash gsettings set org.gnome.settings-daemon.plugins.keyboard active false ``` 再次尝试使用im-chooser选择Fcitx。 ##### 2. 缺少依赖库问题 在运行`sogou-qimpanel`时...
#### 常见问题与解决方案 - **问题1:无法连接到YUM源** - 检查网络连接是否正常,或者尝试更换YUM源。 - **问题2:安装过程中出现错误提示** - 确认系统版本与安装包是否兼容,必要时可手动下载对应版本的安装包...
#### 五、常见问题及解决方案 1. **无法启动IBus服务**: - 确认是否已经安装了`ibus-daemon`; - 检查防火墙设置,确保端口未被屏蔽; - 尝试重新启动系统。 2. **中文显示不正常**: - 安装中文字体包,如`...
在Ubuntu操作系统中,Sublime Text 3是一款广受欢迎的...同时,由于`sublime-text-imfix`只针对Ubuntu系统,如果你在其他Linux发行版上遇到类似问题,可能需要寻找其他解决方案或等待官方更新以解决输入法兼容性问题。