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

dan*_*dan 16 vim

在vimscript中这两种类型的完整函数之间的功能是否有任何区别?

ib.*_*ib. 18

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

如果完成这两种类型的完成之间的区别,则表示完成的目的.用户自定义完成应由用户自己根据特定完成构思特定的条件进行定制.Omni完成应该是特定于文件类型的.因此,Vim从autoload/{ft}complete.vim文件中自动加载不同文件类型的单独Omni完成函数,其中{ft}代表特定的文件类型.请参阅C或Python文件类型的Omni完成文件作为参考.