LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 种草得草

fcitx 3.2发布了

[复制链接]
发表于 2006-6-15 02:19:20 | 显示全部楼层
; 键默认的是“自定义输入”,似乎可以直接输入英文,像极点的那个临时英文的功能?这个不错,很习惯:D
将选第二三重码键设置为 ; ‘  似乎无效?
不过设置为SHIFT也将就了-_-#

默认安装的16号的字体太大了,12号应该就不错的。。。
我的显示器1280×1024,16号的字体都有点受不了,而且也没有超长词语缩略显示,如果输入的位置靠近屏幕的右边的话,输入栏跳得厉害。。。当然这都是细节问题,而且LINUX使用者一般自己动手的能力都不错……倘若只是举手之劳,却能使程序显得更加的友好,何乐而不为呢?

还有一个五笔的默认设置:自动组词
还是那个观点,词库好就不需要自动组词和调频什么的
套用前面的句型:
五笔高手是绝对不会用自动组词的,那样太乱了-_-#
其实五笔手工造词比较重要

PS:这个词库真是可怕。。。
我想打一个“默认” ,出来了N个候选  黑夜 罢论 罢讼 黑鹰   四个词里有两个是废词,另一个:“黑鹰”是生僻词。。。但是却没有“默认” -_-#本来就要花了好几秒钟来找词了,结果还没有我要的。。。大部分的词组都不怎么好,基本上打单字了-_-#
回复 支持 反对

使用道具 举报

发表于 2006-6-15 02:40:15 | 显示全部楼层
自动调频怎么禁用?我修改了/usr/share/fcitx/data/tables。conf
把“调频=”分别改成了 0 1 2     然后输入 sset ,一直选第2项,是下面这种情况
0禁用禁用彬彬禁用彬禁用彬禁用彬
1禁用彬禁用彬禁用彬禁用彬禁用彬
2禁用彬禁用彬禁用彬禁用彬禁用彬
还是说3.2版的不在那里修改了?

配置文件用VIM打开是乱码,只得用Gedit修改。。。

按;后 输入-_-#
空格是这样的 -──-#
回车是这样的-_-#
当然这个功能不是作临时英文使用的,不过这个现象有点诡异-_-#

似乎我说的有点多了-_-#
回复 支持 反对

使用道具 举报

发表于 2006-6-15 05:03:15 | 显示全部楼层
酷极输入法的结构真是的非常优秀,可惜是外挂式的,稳定上稍差一点
又失眠,还是再多说点吧-_-#,说得不好一定要谅解。。。那不是因为俺不想好好说,实在是因为水平有限:)

我不懂编程,大体说下我的理解,看对Yuking大侠有无参考价值-_-#

首先Linux上的输入法接口要比WIN上的简单,刚看了一点点介绍,FCITX用的就是xim引擎吧。xim应该是比较成熟的了,我的系统被我弄得乱七八糟,用SCIM无法在RXVT中输入汉字,FCITX就可以:)而WIN上的输入法就太复杂了,绝大多数输入法不能和大部分程序都兼容,系统自带的输入法生成器生成的功能又太差

简单的介绍下酷极的功能:
1、更换背景图片   这个很多WINDOWS上的输入法都支持的,虽然不能提高打字速度,但是能够使人感觉打字速度提高了-_-# 当然这个不实现也没有什么。。。
2、文本码表   酷极、极点等比较先锋的输入法都支持这个功能。文本码表的好处是可以直接改动,而不需要将文本码表编译为二进制码表。为了实现更方便的更改码表,这两个输入法都自带了在线更改码表的工具,更改后无需重启输入法就可以生效。
在线改码表的编辑器可以由用户自己定义的快捷键或者快捷命令调出(极点不支持自定义快捷命令)。快捷命令就是在快捷英文状态(按;键,也可以自己定义)中输入命令,实现特定功能,很像VIM的命令模式-_-#
作为在线码表编辑器的扩展,可以使用小工具来添加、删除、排序词语(可以自定义快捷键或者快捷命令)
3、两套配置工具
提供在线设置选项的界面。这个大多数输入法都有的吧?不过FCITX怎么弄我没有找到,只能改配置文件。两套配置工具中的一套就是和大多数输入法一样,使用GUI界面进行设置;高级的设置工具使用内置的编辑器在线修改配置文件,改动后直接生效。
3、自定义码元     FCITX也可以的,不过要码表中定义,然后生成。极点和酷极都是在码表或者配置文件中直接定义。极点最多支持36码元,酷极应该可以把键盘上所有的符号都用上(比如我用使用大写字母作为码元,来输入自己的姓名,邮箱什么的)
作为自定义码元的扩展,酷极甚至可以定义标号符号。比如首字母大写自动英文,这个功能,就要把标点、码元、字母区别开来。
4、控制字符  比如退格,换行等  退格这个是我的主意-_-#比如说输入这样的东东<a></a>然后退4格,光标就定位在了两个尖括号中间。对于程序员应该相当有用:)(可以在码表中以\b来表示退格)
其它的像空格、换行,可以使输入文本支持稍微复杂一点的格式
还有一个剪贴板内容变量,比较有趣,比如这样: 人是人******************生的  ,在码表中这种形式
“\c是\c******************生的” 将“人”字复制到剪贴板,然后输入 “\c是\c******************生的”的编码,或者将任何人的姓名什么复制到剪贴板都可以。估计程序员也能用得着-_-#
5、极点还支持通过插件扩展其功能

还有一些功能吧,一时说不上来。

这些看起来比较复杂,但是如果架构得合理,也不难实现

一、将输入内容分为  字母  符号 控制输入  

使用符号码表来定义字母和符号,没有在符号码表中出现的键位便是字母
字母和符号不能重复。首码码元必须是字母,其它码元可以是字母或者符号。码元在输入方案配置文件中定义
符号直接上屏,非码元字母则检索配置文件,看有无功能定义。码元则在词库中检索
码元可以分为首码码元和余码码元两个部分(这样可以支持二笔等非26键输入方案,余码码元中可以包含符号)

控制输入包括组合功能键和快捷命令
在输入方案配置文件中定义

二、在系统根文件夹下有主配置文件、码表文件夹、界面方案文件夹、声音方案文件夹等
主配置文件指定其它配置文件和码表的路径(码表的路径应为相对于根文件夹的路径,而不是相对于输入方案文件夹的路径,这样可以共享一些码表,例如拼音码表)
码表文件夹下,分别为各输入方案的文件夹。
输入方案文件夹下包含
标点码表、标点映射码表、输入方案配置文件(定义码元及其它)、码表索引、主码码表、辅码码表、用户码表(用户码表可以只放置在$HOME目录下)

三、初始化信息及索引码表
初始化信息中应依次标点定义、码元定义、功能定义…………
关于码表格式的问题:
个人认为,检索时应该根据索引码表找到输入编码在码表中的大致位置,然后进入相应位置查找。
查找时,应该先递归查找编码,找到正确的编码后,再查找编码后的词组。
而现在的编码,相同编码可能会占多行,这样似乎稍微响应速度。不如所有相同编码占一行使用空格分隔比较好-_-#
另外:酷极的码表必须编码排序不能打乱,即便打乱,程序启动后也会自动排列。而极点的则没有硬性的要求,这样比较好一点,用户可以通过定义编码的行内位置和行数位置两种方式来控制词序,如果能够将新增词语放在码表的末尾,就可以对码表的变化一目了然,便于管理。
这样的一个缺点是会使索引码表变得复杂,不过应该也不难解决。。。
生成索引码表时,首先按行数(比如10行。这个条目不宜过大,因为很有可能检索的是硬盘中的码表)生成条目;并且内含一个逻辑判断,如果编码间出现了跳跃,则立刻生成新的条目。将所有码表中的索引条目放到一起,排序,生成一个更小的一级索引。
检索时首先检索一级索引,再检索与词组实际位置对应的二级索引

四、流程
系统初始化后,首先读取主配置文件,然后读取用户配置文件,同步到用户配置文件中的设置,确定当前使用的输入方案。
然后读取当前输入方案中的配置文件,根据配置文件读取标点码表,确定哪些是字母,哪些是标点。
读取输入输入方案配置文件,加载功能键、快捷命令、主码码表路径、辅码码表路径,检索方式,输入习惯等设置。然后读取标点映射码表,确定在中文状态下标点对应的输出。再读取输入方案配置文件,确定哪些是码元。
以上作为初始化信息存在。初始化信息中,排最前的内容是字母定义,然后是码元定义。然后功能定义、用户界面定义……(因为输入时绝大部分是检索码表,所以码元定义应该靠前)
读取硬盘中的二级索引码表
然后将用户码表内容读入内存,再将主码码表内容读入内存。辅码码表不读入
再将内存中的主码码表、用户码表和硬盘中的二级索引码表生成一级索引码表,检索优先级仅次于初始化信息。

在中文输入状态下,检测到一个输入后,在初始化信息中查找
        首先检测是否组合键输入,如果是则进入相应功能
        检测是否字母,如果是则在初始化信息中检索是否码元,是码元则检索索引码表,并根据索引找到实际码表,将结果显示在候选栏中;如不是码元,则检索有否定义大写字母自动英文……
    如果是标点,则在初始化信息中检索有无定义功能,例如临时辅码(通常为拼音),如有则检索辅码码表;如无则检索标点映射码表,如有定义则对应的中文标点上屏,如无定义则直接上屏。
       

--------------------------------------
大致说这么多吧。。。应该是属于废话的类型-_-#    不过结构还是合理的吧?实现功能比较容易理论上。。。    再失眠的话再说吧-_-#
回复 支持 反对

使用道具 举报

发表于 2006-6-15 10:48:52 | 显示全部楼层
顶一下,一直都是使用fcitx的,兼容性的问题少,稳定,从来没有出过什么问题,实在是一个非常好的软件.我是一直用拼音的,感觉功能上还行,其他的问题就还是词库的问题,3.2的测试版用过一段时间,感觉很不错的,不过后来由于一些原因,很少自己编译软件了,用的是稳定版的,很早就期待3.2的发布并且提交到debian里面去的.祝贺一下

不过有一个问题就是好象没法在fltk2的程序里面输入中文,fltk1不支持UNICODE,没试过,大家有空的可以测试一下?
fltk2下面一按ctrl+space就直接输入space符号了,没法切换输入法,只能输入英文字母,具体我也没有怎么测试过,这个好象是fltk2的问题?没有用软键盘测试过,3.1稳定版没有这个功能
不过用鼠标选中然后中键粘贴可以输入中文
回复 支持 反对

使用道具 举报

发表于 2006-6-15 13:23:00 | 显示全部楼层
先来说一下fcitx,至于后面的实现流程,俺还得再消化一下才是
1.更换背景:现在fcitx只用xlib,实现这个有点难啊……暂时不考虑好了
2.文本码表:其实按现在的实现的实现方法,用文本码表也是可以的,差别也只是在读入和保存的时候,二进制的要快那么一点点。正是想到用户不太可能经常修改词库,因此没有做这方面的功能,如果真是那么需要,实现也是不难。现在fcitx可以动态加载新的码表,其实每次切换输入法(码表),都是先保存一下,然后再读入新的。这样,如果想用新的五笔,可以先换到拼音,用新的五笔词库覆盖老的,再回到五笔,就是新的了。
3.fcitx没有自己的GUI配置工具(不过sir上有个大虾做了个……),原因也简单,一般人一旦配置好,基本上不怎么改了,所以,就懒得写了。当然,独立的配置工具还是不错的……现在fcitx可以动态加载新的配置,按ctrl_5就可以了。fcitx现在可以自定义标点,可以大写转英文等……
4.控制字符倒是不错的想法,再想想怎么实现……
5.这个只能再说吧……呵呵
回复 支持 反对

使用道具 举报

发表于 2006-6-15 13:25:42 | 显示全部楼层
Post by ailantian
顶一下,一直都是使用fcitx的,兼容性的问题少,稳定,从来没有出过什么问题,实在是一个非常好的软件.我是一直用拼音的,感觉功能上还行,其他的问题就还是词库的问题,3.2的测试版用过一段时间,感觉很不错的,不过后来由于一些原因,很少自己编译软件了,用的是稳定版的,很早就期待3.2的发布并且提交到debian里面去的.祝贺一下

不过有一个问题就是好象没法在fltk2的程序里面输入中文,fltk1不支持UNICODE,没试过,大家有空的可以测试一下?
fltk2下面一按ctrl+space就直接输入space符号了,没法切换输入法,只能输入英文字母,具体我也没有怎么测试过,这个好象是fltk2的问题?没有用软键盘测试过,3.1稳定版没有这个功能
不过用鼠标选中然后中键粘贴可以输入中文

没用过fltk的程序,不清楚,是不是它不支持XIM?
回复 支持 反对

使用道具 举报

发表于 2006-6-15 14:23:54 | 显示全部楼层
wo hai bu nen yong wu bi ya !
回复 支持 反对

使用道具 举报

发表于 2006-6-15 22:17:03 | 显示全部楼层
Post by Yuking
先来说一下fcitx,至于后面的实现流程,俺还得再消化一下才是
1.更换背景:现在fcitx只用xlib,实现这个有点难啊……暂时不考虑好了
2.文本码表:其实按现在的实现的实现方法,用文本码表也是可以的,差别也只是在读入和保存的时候,二进制的要快那么一点点。正是想到用户不太可能经常修改词库,因此没有做这方面的功能,如果真是那么需要,实现也是不难。现在fcitx可以动态加载新的码表,其实每次切换输入法(码表),都是先保存一下,然后再读入新的。这样,如果想用新的五笔,可以先换到拼音,用新的五笔词库覆盖老的,再回到五笔,就是新的了。
3.fcitx没有自己的GUI配置工具(不过sir上有个大虾做了个……),原因也简单,一般人一旦配置好,基本上不怎么改了,所以,就懒得写了。当然,独立的配置工具还是不错的……现在fcitx可以动态加载新的配置,按ctrl_5就可以了。fcitx现在可以自定义标点,可以大写转英文等……
4.控制字符倒是不错的想法,再想想怎么实现……
5.这个只能再说吧……呵呵


其实换背景、配置工具这些倒无所谓的,不过文本码表这个确实是比较有必要,虽然大多数人并不会经常大幅度改动自己的码表,不过隔三差五的捣腾下也是人之常情:)在这种情况下,二进制的码表就多少有些不方便了(拼音用户通常不会去改动码表,顶多是加一些自造词,但是像五笔、二笔等形码半形码,用户改码表倒无可厚非)

自定义编码这个我不太了解了,不过我看了下,FCITX的配置文件中似乎没有相关的设置?是在文本码表中定义的么?个人认为,还是把码元定义与码表分离的比较好,这样灵活性大一点。

顺便问一下,FCITX支持动态码长么?自然码(我用的自然码叫“风云”现在不知道叫什么名字,好久没用了:)似乎对于动态码长的要求比较高,酷极除开支持动态码长外,还支持扩展的智能码长(?)这个功能叫什么名字记不太清楚了,不过经过论证,似乎目前还不太实用-_-#  就是在长码为空时,自动按默认码长分割编码,并且分割后编码的第一部分自动上屏,对于编码密度均匀的编码方案效果还是不错的。也试过把五笔每字两码的方式进行编码,但是五笔本身的特点决定了编码命中率太低,效果不理想-_-#

对于二笔等输入法来说,两键上屏,编码截止等功能还是比较重要的

另:其实把非控制输入分为码元-非码元也是可以的,而且显得更简单一些。但是如果要实现一些扩展功能,就比较复杂了。

我把FCITX的二笔码表转换为文本格式查看了下
键码=abcdefghijklmnopqrstuvwxyz;,./
码长=4
规避字符=;iuv
[数据]
, ,
. 。
/ 、
首先一个问题是 u 引导的编码不能二键直接上屏
比如  ub 吧   要按一次空格才能上屏
规避字符。这个不清楚是什么意思,但是;可以直接上屏,而u输入完整编码后也不能自动上屏。是不是这样:
先判断码元,如果是码元,则判断是不是规避字符,如果是规避字符,则检索码表,判断有无重码,无重码直接上屏,有重码则等待进一步输入
如果不是规避字符,则直接检索码表,判断有无外码,如无外码且无重码,则直接上屏,如有外码,即便无重码也不上屏
如果一个符号需要转换为中文标点,则在码表中定义,如果不需要中文标点,则在规避字符中定义?
这样一来就产生了问题,如果要控制标点的输出,必须对于其定义方式比较了解,这个比较让人头晕。。。如果标点的定义全部放在一个码表里的话,就不会有任何问题了
另一个问题是码表的容错性比较差,如果不小心为一个标点定义了外码或者有重码,那么它就不能直接上屏。为了改正这点,可能就得搜索整个码表来找所有相关编码

而使用“符号-字母-码元”的定义方式,可以进一步的简化为“符号-码元”,在标点码表中定义符号及其中文状态下的输出,在配置文件中定义码元。非码元非符号部分-通常是大写字母-在作为功能键时视为同一符号。在不同的预编辑模式中,只要定义各个集合的角色就可以了,比如在临时英文中,三个集合都作为字母,如果输入中出现了符号,则视为表达式;在检索码表模式中,只有码元作为字母,其它的为控制功能……

这样一来,如果想要更改程序,只要更改对应的“符号、码元、字母“集合的功能定义就可以了,而不需要针对某一些具体的符号更改其定义。用户自己进行定义也更方便和简明

上面二笔的例子中,第一码时可以检测是否符号,如是符号且无功能定义,则直接上屏
如果不是符号,则检测首码字符集,是首码码元,则检索码表。不是,则按大写字母处理。
第二码检测是否余码码元,如果是,则检索码表;如不是,则检测有无定义选重码或者翻页等功能,如无,则推字上屏。后面的编码与第二码相同。



。。。说得比较乱,最后自己都晕了-_-#  见笑了。。。
回复 支持 反对

使用道具 举报

发表于 2006-6-15 22:55:45 | 显示全部楼层
的确晕了,至少我是~
回复 支持 反对

使用道具 举报

发表于 2006-6-15 23:02:31 | 显示全部楼层
看的有点昏了……
kardinal能不能给我一个码表的例子?按您的思路?
谢谢……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表