YouCompleteMe基本功能:
YouCompleteMe 是一个快速、即输即查、模糊搜索的 Vim 代码完成引擎。它实际上有好几个完成引擎:
- 一个基于标识符的引擎,可以在任何编程语言中工作
- 一个强大的基于 clangd 的引擎,可以为 C/C++/Objective-C/Objective-C++/CUDA(C 家族语言)提供原生的语义代码完成
- 一个基于 Jedi 的完成引擎,可以支持 Python 2 和 3
- 一个基于 OmniSharp-Roslyn 的完成引擎,用来支持 C#
- 一个基于 Gopls 的完成引擎,支持 Go
- 一个基于 TSServer 的完成引擎,支持 JavaScript 和 TypeScript
- 一个基于 rls 的完成引擎,支持 Rust
- 一个基于 jdt.ls 的完成引擎,支持 Java
- 一个通用的语言服务器协议(LSP)实现,用来支持任何其他有 LSP 服务器的语言
- 还有一个基于 omnifunc 的完成器,使用 Vim 的全能补全(omnicomplete)系统提供的数据来为很多其他语言提供语义完成
其实,Vim 里的自动完成插件并不止这一个,但 YCM 是比较成熟也比较全面的。虽说它的安装配置有一定的复杂性,但比起另外一些要求你独立安装、配置语言服务器的方案,它至少能一次性搞定插件和你需要的语言支持,所以反而算是简单的了。