vi的自动补足

世界上能说出vi好处的人很多,但是能说出vi全部好处的人,除了vi的作者,我想会很少很少。 以前,开始用vi的时候,总觉得不习惯。一个绝大多数时间内只能用键盘完成所有操作的工具,在现在眼花缭乱的IDE中的确很不起眼。用vi好像被一下子打到了石器时代,用起了dos的edit。 渐渐的,我不这样想了。就像不认为shell脚本是dos的bat一样。我很努力的看完了vi的manual。收获真的很大。渐渐的,vi成了我的默认editor,以至现在我还不会用emacs,有点对不起RMS了:( 终于,我认为vi已经了解得差不多了。就在前几天,我才知道我是多么的肤浅。vi绝对不是editor这么简单(即便是editor,它至少也是很强的),用过vi的latex插件,你就知道,原来vi还能作为compilier! 当然今天有点扯远了,来说说vi的自动补足功能吧。以前在用dw、dot net的IDE时,十分羡慕它们的自动补足功能,可以说这一项节约了程序员很多的开发时间,提高了效率。但是我却不知道,vi也有这项功能。 拿一个简单的hello.c来说: [coolcode lang=”cpp”] #include “stdio.h”int main(void){printf(“Hello world!n”);….}[/coolcode] 就在这里,如果你输入了printf这句话之后,在第二行开始的时候输入“p”,紧接着,键入Ctrl+P 。这时会出现什么? 是的,vi帮你自动补全了printf。再试一试H ,Ctrl+P,出来了Hello!试一试输入sca,在按Ctrl+P,会不会出现scanf呢? 很有可能。那么vi是如何实现自动补足的功能的呢?事实上,vi搜索一些文件,匹配你的词语。他的搜索顺序是: 1 本文件2 其他窗口的文件3 上传缓冲区中的文件4 当前tag表5 当前文件中所有的include文件 这样vi就实现了自动匹配的功能。