From WikEmacs
Jump to: navigation, search
Library cc-mode
Command c-mode
Builtin yes
Auto-activates for *.c *.h *.xbm *.xpm *.y *.yacc *.lex *.i *.m

c-mode is the default major mode for editing C source files. Its major features are customizable indentation and font-locking (coloring of code).

Basic setup[edit]

c-mode is bundled with Emacs by default. No additional setup is required.

Helpful keybindings[edit]

Go to the beginning of the current function. If you are between 2 functions, go the start of the previous one.
Go to the end of the current function. If you are between 2 functions, go to the end of the next one.
Mark current function
Go to beginning of current statement (or next one).
Go to end of current statement (or previous one).

Common Customization[edit]


Any mode based on cc-mode provides automatic indentation. The default style is gnu. It is the one recommended by the Free Software Foundation for GNU projects but you can use a different one.

Here is a basic list of predefined styles:

The default style for GNU projects
What Kernighan and Ritchie, the authors of C used in their book
What BSD developers use, aka “Allman style” after Eric Allman.
Popularized by the examples that came with Whitesmiths C, an early commercial C compiler.
What Stroustrup, the author of C++ used in his book
Popular C++ coding standards as defined by “Programming in C++, Rules and Recommendations,” Erik Nyquist and Mats Henricson, Ellemtel
What the Linux developers use for kernel development
What Python developers use for extension modules
The default style for java-mode (see below)
When you want to define your own style

You can look the cc-mode documentation for a complete list of builtin style. For visual example of each style you can look the Wikipedia article on indenting style.

  • The default style is set via the variable c-default-style
  • Use [C-c .] (or M-x c-set-style) to change the indentation style of the current buffer.
  • The amount of space use to indent is set via the variable c-basic-offset.

To set the default style to K&R and use 4 spaces, add this to your Emacs configuration file:

; set k&r style
(setq c-default-style "k&r")
; indent with 4 spaces
(setq c-basic-offset 4)


OS X[edit]




Recommended Reading[edit]

Project Pages[edit]

Tutorial Pages[edit]

See also[edit]

Ebrowse, a C++ class browser[edit]