What can you recommend me ?
You can try company-mode. It's a multi-backend in-buffer completion mechanism.
Watch the screencast to get an idea of how it works.
Some of the back-ends are:
- CEDET Semantic
- dabbrev
- XCode
- PySmell
- Ropemacs
- GNU Global
And it's also available via ELPA.
You could also use an autocomplete plugin for clang as long as your source compiles with it. links:
GCCSense
From the author of Auto Complete Mode. It uses gcc to find candidates for code completion as the name suggests.
CEDET is just great, certainly needs some time at the beginning but worth it though.
I tend to use etags.
For emacs integration: http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/etags.html
For how to run etags. http://www.delorie.com/gnu/docs/emacs/etags.1.html
As a bonus, this blog post describes a bit more emacs setup and how to use etags. http://tulrich.com/geekstuff/emacs.html
Edit: To answer the comment, after runnning etags across your code, you can complete words with C-x t(that's what it's bound to on my machine.) Or you can call the tag-search method.
to be honest for i like plain old dabbrev-expand (M-/), yes it doesn't use any contextual information other than what characters are adjacent in the open buffers, but on the plus side it doesn't use any contextual information ;) this means you can complete from text you have written first in tests or comments.
for other options http://www.emacswiki.org/emacs/CategoryCompletion
When I'm editing python code in Emacs, I like and use pysmell for code completion:
I find that learning how to type fast (and having a decent memory) beats auto completion every time. How far must we go to try and dumb down programming?
来源:https://stackoverflow.com/questions/1285971/emacs-code-completion-for-c-c