Our take
- Activity
- 19
- Community
- 84
- Issues
- 46
- Pull requests
- 20
+2 stars in the last 30 days
- More contributors than 78% of the projects we track
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
25,874Forks
2,740Change since Nov 12, 2026: 0 stars·0 forks
Overview
YouCompleteMe is a code-completion engine for Vim. It addresses the gap between basic text-editor completion and IDE assistance by suggesting identifiers as you type and connecting to semantic engines or Language Server Protocol servers for deeper code understanding.
It is aimed at developers who work in Vim and want features such as code navigation, diagnostics, and refactoring in the editor. Language support and available features vary by completer, and some require separate tools and project configuration.
Key Features
- Fuzzy, subsequence-based completion from identifiers across files and tags.
- Semantic completion through language-specific engines and compatible Language Server Protocol servers.
- Navigation to declarations, definitions, references, and other symbols where supported.
- Diagnostics, signature help, documentation, and type information for supported languages.
- Refactoring, code formatting, and import management where supported by the language engine.
- Filepath and Vim omnifunc completion, plus integration with UltiSnips.
Use Cases
- Vim users who want suggestions to appear while typing instead of relying only on manual completion commands.
- C or C++ developers who can provide a compilation database or configuration flags and want clangd-powered analysis.
- Developers working across supported languages who want navigation and diagnostics without switching to a separate IDE.
- Users of other languages who have a compatible language server and want to connect it through YCM's LSP support.
Getting Started
After installing the Vim plugin and its prerequisites, run the installer from the repository directory to enable all completers:
python3 install.py --all
See the README for platform-specific setup, language requirements, and configuration details.
Considerations
- Installation builds compiled components and requires a supported Vim setup with Python 3.12 or later, plus CMake and a supported compiler.
- Enabling all language completers requires additional language runtimes and tools; a compatible language server may also need its own configuration.
- C-family semantic analysis needs accurate project compile flags, usually supplied through a compilation database or
.ycm_extra_conf.py. - Windows support is deprecated and unmaintained. Some features are Vim-only, and Neovim is not officially supported.
- The GPL-3.0 license may not fit every distribution or integration requirement.
Found this useful?
Share it with someone who would like YouCompleteMe.