Skip to content
Projects

xavierd/clang_complete

View on GitHub

xavierd/clang_complete has 1,939 GitHub stars and 303 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 23:33 UTC. Last push 2024-04-24.

How these counts are measured

Vim plugin that use clang for completing C/C++ code.

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

This plugin uses clang for accurately completing C and C++ code.

Installation

You need Vim 7.3 or higher, compiled with python support and ideally, with the conceal feature.

Not using any plugin management tools

Just put the files in ~/.vim/

git clone https://github.com/xavierd/clang_complete.git /tmp/clang_complete
cp -r /tmp/clang_complete/* ~/.vim

Using packs of Vim8

mkdir -p ~/.vim/pack/completion/start/
git clone https://github.com/xavierd/clang_complete.git ~/.vim/pack/completion/start/clang_complete

Using plugin managers, runtime path managers

Follow regular procedure outlined in corresponding documentation

Using vimball (not in nvim)

To build and install in one step, type: $ make install

To build and install in two steps, type:

$ make
$ vim clang_complete.vmb -c 'so %' -c 'q'

Minimum Configuration

  • Set the clang_library_path to the directory containing file named libclang.{dll,so,dylib} (for Windows, Unix variants and OS X respectively) or the file itself, example:
 " provide path directly to the library file
 let g:clang_library_path='/usr/lib/llvm-14/lib/libclang-14.so.1'
  • Compiler options can be configured in a .clang_complete file in each project root. Example of .clang_complete file:
-DDEBUG
-include ../config.h
-I../common
-I/usr/include/c++/4.5.3/
-I/usr/include/c++/4.5.3/x86_64-slackware-linux/

Usage

The plugin provides list of matches, after that you pick completion from a generic completion menu where Ctrl+N, Ctrl+P and alike work and wrap around ends of list.

License

See doc/clang_complete.txt for help and license.

Troubleshooting

The first step is to check values of 'omnifunc' and 'completefunc' options in a C++ buffer where completion doesn't work (the value should be ClangComplete). This can be done with the following command: :set omnifunc? completefunc?

Output of :messages command after startup could also show something useful in case there were problems with plugin initialization.

If everything is fine, next step might be to load only clang_complete plugin and see if anything changes.

Explore related projects