LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: sofire

一个小想法,不知道有没有价值.

[复制链接]
发表于 2004-8-10 16:02:26 | 显示全部楼层

回复: 从技术上说根本就不可能实现。

最初由 mandrakechina 发表
正如楼上所说的,输入法最大的特点就是与应用程序无关。也就是说,你无法知道先前输入了什么,以后该输入什么。你也无法知道当前的host程序究竟在干什么。要实现自动补全,无异于痴人说梦。

举个例子。我们在程序里面定义了一个自己的类,比如叫myclass。那么下面我们输入myclass.之后,应该会弹出myclass类下的全部成员或者方法。但是,输入法本身无法获知程序先前的内容,从而导致无法弹出。你就会无理的要求输入法作者添加这个功能。

也许你会说,可以实现构造一个极为庞大的函数库。但你无法知道现在的这个程序是否依赖相应的版本glibc函数库。假如你使用了新版本的函数,而系统现有的glibc函数库并不提供该函数,那么你就会骂输入法的编写者,怎么都不能自动检测glibc的版本呢?

如果集合了以上的功能,这还是个输入法吗?根本是一个键盘的钩子程序,平白在键盘和应用程序之间拦了一下子。这么低效的做法,会拖累到系统。

综上所述,将自动补全功能纳入输入法是一个十分错误的想法。


也没说出什么有用的
倒是最后一句挺吓人
发表于 2004-8-10 16:38:23 | 显示全部楼层
mandrakechina正道出了在输入法中实现自动补全的弱点
但我认为在输入法中实现并非一无是处

要想自动补全用户自己编写的函数和类的确不现实
但可以自动补全C标准库函数、系统调用、常用工具库(如gtk, qt)的函数

至于和系统中真正的库不一致,我认为不是什么大问题,
这种输入法只是为了提供一种参考,为编程提供方便,而不是要提供标准库的说明书
就像有人拿着与自己系统版本不一致的参考书编程序,发现书上有的自己系统却没有,总不能怪写书的人吧

另外,这种输入法也不必“平白在键盘和应用程序之间拦了一下子”,
做成其他输入法(如SCIM)的一个模块,随时可以切换,不会影响不想用这种输入法的人
发表于 2004-8-10 16:39:18 | 显示全部楼层
其实输入法本是就像个键盘的钩子程序
这不是这种输入法特有的性质
发表于 2004-8-10 18:30:40 | 显示全部楼层
在输入法里实现这个功能确实不是个好主意
发表于 2004-8-30 07:21:19 | 显示全部楼层
try cream for vim
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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