Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. YouCompleteMe

YouCompleteMe

GPL-3.0Python

A fast, as-you-type, fuzzy-search code completion, comprehension, and refactoring engine for Vim with support for many languages.

Visit WebsiteGitHubGitHub
25.9k stars2.8k forks0 contributors

What is YouCompleteMe?

YouCompleteMe is a code-completion engine for Vim that provides fast, fuzzy-search completions and semantic analysis for many programming languages. It integrates multiple language-specific engines and supports the Language Server Protocol, offering features like go-to-definition, real-time diagnostics, and refactoring directly within Vim.

Target Audience

Vim users who want IDE-like code completion, navigation, and refactoring capabilities without leaving the editor, particularly developers working with C-family languages, Python, Java, JavaScript/TypeScript, Go, Rust, or C#.

Value Proposition

YouCompleteMe stands out for its speed, as-you-type fuzzy matching, and extensive language support through both built-in semantic engines and LSP integration. It transforms Vim into a powerful IDE with minimal configuration, offering features like signature help, diagnostics, and symbol renaming that are typically found in full-fledged IDEs.

Overview

A code-completion engine for Vim

Use Cases

Best For

  • Vim users seeking fast, intelligent code completion across multiple languages
  • C/C++ developers needing semantic analysis and real-time diagnostics via clangd
  • Python programmers using Jedi for accurate completions and navigation
  • Java projects requiring integration with jdt.ls for Maven or Gradle builds
  • JavaScript/TypeScript development with TSServer for imports and refactoring
  • Go developers leveraging gopls for formatting and inlay hints

Not Ideal For

  • Windows users, as support is deprecated and unmaintained, leading to potential breakages without official testing or fixes.
  • Developers using Neovim exclusively, since it's not officially supported and lacks features like semantic highlighting and inlay hints in Neovim.
  • Users on older or unsupported systems with Vim below 9.1.0016 or Python below 3.12, as YCM mandates specific runtime versions.
  • Those wanting a plug-and-play setup without compilation; YCM requires running install.py with dependencies like CMake and language tools, which can be complex.

Pros & Cons

Pros

Fast Fuzzy Completion

Provides as-you-type, subsequence-based completions with smart ranking, as demonstrated in GIFs where typing 'abc' matches 'xaybgc' without needing prefix matches.

Multi-Language Semantic Support

Integrates engines like clangd for C-family, Jedi for Python, and LSP servers for Java, Go, etc., enabling deep code analysis and IDE features across many languages.

IDE-Like Navigation and Diagnostics

Offers real-time error display, go-to-definition, find references, and refactoring commands, transforming Vim into a full-featured development environment.

Client-Server Architecture

Uses a separate ycmd server for performance and extensibility, allowing background processing without blocking Vim, as noted in the architecture section.

Cons

Complex Installation and Dependencies

Requires running install.py with specific compilers and language tools, and managing dependencies like CMake, which the README admits can be error-prone and platform-specific.

Strict System Requirements

Demands Vim 9.1.0016 or Neovim 0.5 with Python 3.12, and unsupported environments like older distros or Windows may fail, limiting accessibility.

Limited Neovim and Windows Support

Neovim is not officially supported with missing features, and Windows support is deprecated, risking instability and lack of updates for these users.

Frequently Asked Questions

Quick Stats

Stars25,909
Forks2,751
Contributors0
Open Issues20
Last commit13 days ago
CreatedSince 2012

Tags

#semantic-analysis#vim#java#python#language-server-protocol#javascript#code-analysis#ide-features#refactoring#code-completion#vim-plugin

Built With

r
rust-analyzer
V
Vim
g
gopls
C
CMake
P
Python
C
C++

Links & Resources

Website

Included in

C/C++70.6k
Auto-fetched 2 hours ago

Related Projects

VS CodeVS Code

Visual Studio Code

Stars187,830
Forks41,224
Last commit3 hours ago
Qt CreatorQt Creator

A cross-platform Qt IDE

Stars3,051
Forks869
Last commit3 hours ago
Embarcadero Dev-CPPEmbarcadero Dev-CPP

A fast, portable, simple, and free C/C++ IDE

Stars2,960
Forks321
Last commit2 years ago
cquerycquery

C/C++ language server supporting multi-million line code base, powered by libclang. Emacs, Vim, VSCode, and others with language server protocol support. Cross references, completion, diagnostics, semantic highlighting and more

Stars2,362
Forks163
Last commit6 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub