除了调用键映射之外,omnifunc和completefunc之间有什么区别?

时间:2011-08-04 12:59:47

标签: vim

vimscript中这两种类型的完整函数之间的功能是否存在差异?

1 个答案:

答案 0 :(得分:18)

从技术上讲,用户定义的实现没有区别 完成(请参阅:help compl-function:help 'completefunc')和Omni 完成(请参阅:help compl-omni:help 'omnifunc')。他们两个都在工作 调用特殊语义的函数来定位它的开始 表达要在当前位置完成,并提供适当的 完成建议(见:help complete-functions)。

如果这两种完成方式之间存在差异,则表明 是完成的目的。用户定义的完成应该由 用户自己根据特定条件特定完成 理念。 Omni完成应该是特定于文件类型的。因此,分开 不同文件类型的Omni完成功能由自动加载 Vim来自autoload/{ft}complete.vim个文件,{ft}代表 特定的文件类型。查看C或Python的Omni完成文件 文件类型作为参考。