Difference between revisions of "CC-mode"
Jump to navigation
Jump to search
m |
(rm emacswiki word) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 11: | Line 11: | ||
<!-----DONT REMOVE ANYTHING FROM THIS TEMPLATE ------------------------------> | <!-----DONT REMOVE ANYTHING FROM THIS TEMPLATE ------------------------------> | ||
<!-----FEW MONTHS, YEARS FROM NOW, MAYBE WE CAN DELETE STUFF. NOT NOW ------------------> | <!-----FEW MONTHS, YEARS FROM NOW, MAYBE WE CAN DELETE STUFF. NOT NOW ------------------> | ||
− | |||
<!-----PLEASE BE PATIENT AND CO-OPERATE FOR GREATER GOOD ------------------> | <!-----PLEASE BE PATIENT AND CO-OPERATE FOR GREATER GOOD ------------------> | ||
Line 137: | Line 136: | ||
<!-- Add categories based on user-level (beginner etc), user-role (programming, emacs contributor etc), platform (windows, linux etc) or work flow (text editing, document authoring etc) --> | <!-- Add categories based on user-level (beginner etc), user-role (programming, emacs contributor etc), platform (windows, linux etc) or work flow (text editing, document authoring etc) --> | ||
− | Nice visual preview of different cc mode styles: http://davidha.wordpress.com/2009/05/15/emacs-cc-modes-built-in-styles-gallery/ | + | * Nice visual preview of different cc mode styles: http://davidha.wordpress.com/2009/05/15/emacs-cc-modes-built-in-styles-gallery/ |
+ | * Example mode based on cc-mode http://cc-mode.sourceforge.net/derived-mode-ex.el | ||
+ | |||
+ | = See also = | ||
+ | |||
+ | == [[Ebrowse]], a C++ class browser == | ||
[[Category:Programming]] | [[Category:Programming]] |
Latest revision as of 10:42, 17 May 2017
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
c-mode is bundled with Emacs by default. No additional setup is required.
Helpful keybindings
- [C-M-a]
- Go to the beginning of the current function. If you are between 2 functions, go the start of the previous one.
- [C-M-e]
- Go to the end of the current function. If you are between 2 functions, go to the end of the next one.
- [C-M-h]
- Mark current function
- [M-a]
- Go to beginning of current statement (or next one).
- [M-e]
- Go to end of current statement (or previous one).
Common Customization
Style
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:
gnu
- The default style for GNU projects
k&r
- What Kernighan and Ritchie, the authors of C used in their book
bsd
- What BSD developers use, aka “Allman style” after Eric Allman.
whitesmith
- Popularized by the examples that came with Whitesmiths C, an early commercial C compiler.
stroustrup
- What Stroustrup, the author of C++ used in his book
ellemtel
- Popular C++ coding standards as defined by “Programming in C++, Rules and Recommendations,” Erik Nyquist and Mats Henricson, Ellemtel
linux
- What the Linux developers use for kernel development
python
- What Python developers use for extension modules
java
- The default style for java-mode (see below)
user
- 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)
GNU/Linux
OS X
Windows
Emacs-24
Emacs-23
Recommended Reading
Project Pages
Tutorial Pages
- Nice visual preview of different cc mode styles: http://davidha.wordpress.com/2009/05/15/emacs-cc-modes-built-in-styles-gallery/
- Example mode based on cc-mode http://cc-mode.sourceforge.net/derived-mode-ex.el