我想知道函数名称中的#符号是什么意思,例如:

execute pathogen#infect()


评论

阅读与自动加载插件相关的帮助。

#1 楼

这是autoload
机制的一部分。来自
Autoloading,位于
学习Vimscript的艰辛方法
:help autoload

自动加载可让您将加载代码延迟到实际需要之前,因此,如果
函数

execute pathogen#infect()


已经被加载,Vim会简单地正常调用它。否则,Vim会在您的autoload/pathogen.vim目录中寻找一个名为~/.vim的文件。如果该文件存在,Vim将加载/获取文件。然后它将尝试正常调用
函数。

函数名称中的每个#都类似于路径分隔符。因此,在调用
函数时:

:call foo#bar#func()


Vim将查找文件autoload/foo/bar.vim