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就实现了自动匹配的功能。

Leave a Comment

Your email address will not be published. Required fields are marked *