<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikemacs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ruediger</id>
	<title>WikEmacs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wikemacs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ruediger"/>
	<link rel="alternate" type="text/html" href="https://wikemacs.org/wiki/Special:Contributions/Ruediger"/>
	<updated>2026-04-19T09:13:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikemacs.org/index.php?title=Js2-mode&amp;diff=3671</id>
		<title>Js2-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Js2-mode&amp;diff=3671"/>
		<updated>2012-12-10T12:38:15Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=js2-mode&lt;br /&gt;
|description=major mode for JavaScript programming&lt;br /&gt;
|author=Steve Yegge&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://bzr.savannah.gnu.org/lh/emacs/elpa/annotate/head:/packages/js2-mode/js2-mode.el&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|in_elpa=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''js2-mode''' provides Emacs font-lock, indentation, and navigation for the [[JavaScript]] programming language. It also features an advanced JavaScript parser.&lt;br /&gt;
&lt;br /&gt;
The original repository (at Google Code) seems to be outdated and https://github.com/mooz/js2-mode#readme seems to be a maintained fork.  It includes [https://github.com/mooz/js2-mode/wiki/Changes-from-the-original-mode several changes].&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(package-install &amp;quot;js2-mode&amp;quot;)&lt;br /&gt;
(require 'js2-mode)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://github.com/magnars/js2-refactor.el js2-refactor] - A refactoring library based on js2-mode.&lt;br /&gt;
* [[Swank-js]] ([https://github.com/swank-js/swank-js homepage]) - A REPL to interact with the browser.&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:JavaScript]][[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Swank-js&amp;diff=3670</id>
		<title>Swank-js</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Swank-js&amp;diff=3670"/>
		<updated>2012-12-10T12:38:00Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=swank-js&lt;br /&gt;
|description=Swank backend for Node.JS and in-browser JavaScript&lt;br /&gt;
|author=Ivan Shvedunov&lt;br /&gt;
|maintainer=&lt;br /&gt;
|source=https://github.com/swank-js/swank-js&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|in_elpa=no&lt;br /&gt;
|in_elget=yes&lt;br /&gt;
}}&lt;br /&gt;
Swank-js is a [[SLIME|Swank]] backend for Node.JS which allows an in-browser JavaScript REPL.  It is based on [[js2-mode]].&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
Installation is complicated and requires Node.JS, [[SLIME]], [[js2-mode]].  On Ubuntu/Debian the nodejs-legacy package might be required.&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* https://github.com/swank-js/swank-js&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
* Emacs Rocks! Episode on swank-js http://emacsrocks.com/e11.html&lt;br /&gt;
&lt;br /&gt;
[[Category:JavaScript]][[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=External_browser&amp;diff=3669</id>
		<title>External browser</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=External_browser&amp;diff=3669"/>
		<updated>2012-12-10T12:37:46Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use the mozrepl browser extension to interact with the JavaScript engine in Firefox-family browsers.&lt;br /&gt;
&lt;br /&gt;
The [[swank-js]] project uses [[SLIME]] and Node.js to provide a REPL for interacting with the JavaScript engine of arbitrary browsers.&lt;br /&gt;
&lt;br /&gt;
[[Category:JavaScript]][[Category:Browse]][[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Category:JavaScript&amp;diff=3668</id>
		<title>Category:JavaScript</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Category:JavaScript&amp;diff=3668"/>
		<updated>2012-12-10T12:37:34Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: Created page with &amp;quot;Category:Programming_languages&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Programming_languages]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=SLIME&amp;diff=3666</id>
		<title>SLIME</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=SLIME&amp;diff=3666"/>
		<updated>2012-12-10T12:34:56Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''SLIME''', the '''Superior Lisp Interaction Mode for Emacs''', is an [[Emacs]] mode for developing [[Common Lisp]] applications. SLIME originates in an Emacs mode called SLIM written by Eric Marsden and developed as an open-source project by Luke Gorrie and Helmut Eller. Over 100 Lisp developers have contributed code to SLIME since the project was started in 2003. SLIME uses a backend called SWANK that is loaded into Common Lisp.&lt;br /&gt;
&lt;br /&gt;
SLIME works with the following Common Lisp implementations:&lt;br /&gt;
&lt;br /&gt;
* [[CMU Common Lisp]] (CMUCL)&lt;br /&gt;
* [[Scieneer Common Lisp]]&lt;br /&gt;
* [[Steel Bank Common Lisp]] (SBCL)&lt;br /&gt;
* [[Clozure CL]] (former OpenMCL)&lt;br /&gt;
* [[LispWorks]]&lt;br /&gt;
* [[Allegro Common Lisp]]&lt;br /&gt;
* [[CLISP]]&lt;br /&gt;
* [[Embeddable Common Lisp]] (ECL)&lt;br /&gt;
* [[Armed Bear Common Lisp]] (ABCL)&lt;br /&gt;
&lt;br /&gt;
Some implementations of other programming languages are using SLIME:&lt;br /&gt;
&lt;br /&gt;
* [[Clojure]]&lt;br /&gt;
* [[Swank-js]] for JavaScript&lt;br /&gt;
&lt;br /&gt;
There are also clones of SLIME:&lt;br /&gt;
&lt;br /&gt;
* [[SOLID]] for [[Objective Caml]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Nrepl.el]] for Clojure&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://common-lisp.net/project/slime/ SLIME project page]&lt;br /&gt;
* [http://osdir.com/ml/lisp.cmucl.devel/2003-08/msg00327.html The birth of SLIME on the cmucl-imp mailing list (August 2003)]&lt;br /&gt;
* [http://common-lisp.net/~trittweiler/talks/slime-talk-2008.pdf SLIME presentation by Tobias Rittweiler (2008)]&lt;br /&gt;
* [http://wingolog.org/archives/2006/01/02/slime Review of SLIME by Andy Wingo]&lt;br /&gt;
* [http://bc.tech.coop/blog/070120.html Bill Clementson's &amp;quot;Slime Tips and Techniques&amp;quot; - Part 1] (See also [http://bc.tech.coop/blog/070121.html Part 2], [http://bc.tech.coop/blog/070122.html Part 3], [http://bc.tech.coop/blog/070129.html Part 4], [http://bc.tech.coop/blog/070208.html Part 5], [http://bc.tech.coop/blog/070424.html Part 6], and [http://bc.tech.coop/blog/070425.html Part 7])&lt;br /&gt;
* [http://bc.tech.coop/blog/070927.html Bill Clementson's &amp;quot;SLIME Refactoring&amp;quot;] describes how to set up SLIME&lt;br /&gt;
* [http://bc.tech.coop/blog/070125.html Bill Clementson's &amp;quot;Emacs Keymaps and the SLIME scratch buffer]&lt;br /&gt;
* [http://bc.tech.coop/blog/050501.html Bill Clementson's &amp;quot;CL, Music and SLIME Tutorials&amp;quot;] contains a good SLIME tutorial&lt;br /&gt;
* [http://www.bese.it/~segv/mb-slime.el Marco Baringer's (SLIME guru) SLIME setup]&lt;br /&gt;
* [http://www.cliki.net/Editing%20Lisp%20Code%20with%20Emacs Marco Baringer's &amp;quot;Editing Lisp Code with Emacs&amp;quot;]&lt;br /&gt;
* [http://common-lisp.net/pipermail/slime-devel/ The slime-devel Archives]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lisp]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Popular Package]]&lt;br /&gt;
[[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Swank-js&amp;diff=3665</id>
		<title>Swank-js</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Swank-js&amp;diff=3665"/>
		<updated>2012-12-10T12:32:10Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=swank-js&lt;br /&gt;
|description=Swank backend for Node.JS and in-browser JavaScript&lt;br /&gt;
|author=Ivan Shvedunov&lt;br /&gt;
|maintainer=&lt;br /&gt;
|source=https://github.com/swank-js/swank-js&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|in_elpa=no&lt;br /&gt;
|in_elget=yes&lt;br /&gt;
}}&lt;br /&gt;
Swank-js is a [[SLIME|Swank]] backend for Node.JS which allows an in-browser JavaScript REPL.  It is based on [[js2-mode]].&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
Installation is complicated and requires Node.JS, [[SLIME]], [[js2-mode]].  On Ubuntu/Debian the nodejs-legacy package might be required.&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* https://github.com/swank-js/swank-js&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
* Emacs Rocks! Episode on swank-js http://emacsrocks.com/e11.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Javascript]][[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=External_browser&amp;diff=3664</id>
		<title>External browser</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=External_browser&amp;diff=3664"/>
		<updated>2012-12-10T12:31:56Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use the mozrepl browser extension to interact with the JavaScript engine in Firefox-family browsers.&lt;br /&gt;
&lt;br /&gt;
The [[swank-js]] project uses [[SLIME]] and Node.js to provide a REPL for interacting with the JavaScript engine of arbitrary browsers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Javascript]][[Category:Browse]][[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Swank-js&amp;diff=3663</id>
		<title>Swank-js</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Swank-js&amp;diff=3663"/>
		<updated>2012-12-10T12:31:31Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: Created page with &amp;quot;{{Package |name=swank-js |description=Swank backend for Node.JS and in-browser JavaScript |author=Ivan Shvedunov |maintainer= |source=https://github.com/swank-js/swank-js |in_...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=swank-js&lt;br /&gt;
|description=Swank backend for Node.JS and in-browser JavaScript&lt;br /&gt;
|author=Ivan Shvedunov&lt;br /&gt;
|maintainer=&lt;br /&gt;
|source=https://github.com/swank-js/swank-js&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|in_elpa=no&lt;br /&gt;
|in_elget=yes&lt;br /&gt;
}}&lt;br /&gt;
Swank-js is a [[Slime|Swank]] backend for Node.JS which allows an in-browser JavaScript REPL.  It is based on [[js2-mode]].&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
Installation is complicated and requires Node.JS, [[SLIME]], [[js2-mode]].  On Ubuntu/Debian the nodejs-legacy package might be required.&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* https://github.com/swank-js/swank-js&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
* Emacs Rocks! Episode on swank-js http://emacsrocks.com/e11.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Js2-mode&amp;diff=3662</id>
		<title>Js2-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Js2-mode&amp;diff=3662"/>
		<updated>2012-12-10T12:23:37Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: /* See Also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=js2-mode&lt;br /&gt;
|description=major mode for JavaScript programming&lt;br /&gt;
|author=Steve Yegge&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://bzr.savannah.gnu.org/lh/emacs/elpa/annotate/head:/packages/js2-mode/js2-mode.el&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|in_elpa=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''js2-mode''' provides Emacs font-lock, indentation, and navigation for the [[JavaScript]] programming language. It also features an advanced JavaScript parser.&lt;br /&gt;
&lt;br /&gt;
The original repository (at Google Code) seems to be outdated and https://github.com/mooz/js2-mode#readme seems to be a maintained fork.  It includes [https://github.com/mooz/js2-mode/wiki/Changes-from-the-original-mode several changes].&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(package-install &amp;quot;js2-mode&amp;quot;)&lt;br /&gt;
(require 'js2-mode)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://github.com/magnars/js2-refactor.el js2-refactor] - A refactoring library based on js2-mode.&lt;br /&gt;
* [[Swank-js]] ([https://github.com/swank-js/swank-js homepage]) - A REPL to interact with the browser.&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Js2-mode&amp;diff=3661</id>
		<title>Js2-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Js2-mode&amp;diff=3661"/>
		<updated>2012-12-10T12:21:01Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: fork&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=js2-mode&lt;br /&gt;
|description=major mode for JavaScript programming&lt;br /&gt;
|author=Steve Yegge&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://bzr.savannah.gnu.org/lh/emacs/elpa/annotate/head:/packages/js2-mode/js2-mode.el&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|in_elpa=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''js2-mode''' provides Emacs font-lock, indentation, and navigation for the [[JavaScript]] programming language. It also features an advanced JavaScript parser.&lt;br /&gt;
&lt;br /&gt;
The original repository (at Google Code) seems to be outdated and https://github.com/mooz/js2-mode#readme seems to be a maintained fork.  It includes [https://github.com/mooz/js2-mode/wiki/Changes-from-the-original-mode several changes].&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(package-install &amp;quot;js2-mode&amp;quot;)&lt;br /&gt;
(require 'js2-mode)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [https://github.com/magnars/js2-refactor.el js2-refactor] - A refactoring library based on js2-mode&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=CC-mode&amp;diff=3660</id>
		<title>CC-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=CC-mode&amp;diff=3660"/>
		<updated>2012-12-10T12:14:35Z</updated>

		<summary type="html">&lt;p&gt;Ruediger: /* Tutorial Pages */ derived-mode-ex.el&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox major-mode&lt;br /&gt;
|title = C&lt;br /&gt;
|library = cc-mode&lt;br /&gt;
|command = c-mode&lt;br /&gt;
|builtin = yes&lt;br /&gt;
|auto activates = *.c *.h *.xbm *.xpm *.y *.yacc *.lex *.i *.m&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''c-mode''' is the default [[major mode]] for editing [[C]] source files. Its major features are customizable indentation and font-locking (coloring of code). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----DONT REMOVE ANYTHING FROM THIS TEMPLATE ------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----FEW MONTHS, YEARS FROM NOW, MAYBE WE CAN DELETE STUFF. NOT NOW ------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----YOU DON&amp;quot;T WANT WIKEMACS TO BE ANOTHER EMACSWIKI RIGHT ------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----PLEASE BE PATIENT AND CO-OPERATE FOR GREATER GOOD ------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Basic setup =&lt;br /&gt;
&lt;br /&gt;
c-mode is bundled with Emacs by default. No additional setup is required. &lt;br /&gt;
&lt;br /&gt;
= Helpful keybindings =&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-a}}&lt;br /&gt;
: Go to the beginning of the current function. If you are between 2 functions, go the start of the previous one.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-e}}&lt;br /&gt;
: Go to the end of the current function. If you are between 2 functions, go to the end of the next one. &lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-h}}&lt;br /&gt;
: Mark current function&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-a}}&lt;br /&gt;
: Go to beginning of current statement (or next one).&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-e}}&lt;br /&gt;
: Go to end of current statement (or previous one).&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Common Customization =&lt;br /&gt;
&amp;lt;!-- Customization common to all platforms goes here --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Style ==&lt;br /&gt;
Any mode based on {{ModeLink|cc-mode}} provides automatic indentation. The default style is &amp;lt;code&amp;gt;gnu&amp;lt;/code&amp;gt;. It is the one recommended by the Free Software Foundation for GNU projects but you can use a different one.&lt;br /&gt;
&lt;br /&gt;
Here is a basic list of predefined styles:&lt;br /&gt;
; &amp;lt;code&amp;gt;gnu&amp;lt;/code&amp;gt;&lt;br /&gt;
: The default style for GNU projects&lt;br /&gt;
; &amp;lt;code&amp;gt;k&amp;amp;r&amp;lt;/code&amp;gt;&lt;br /&gt;
: What Kernighan and Ritchie, the authors of C used in their book&lt;br /&gt;
; &amp;lt;code&amp;gt;bsd&amp;lt;/code&amp;gt;&lt;br /&gt;
: What BSD developers use, aka “Allman style” after Eric Allman.&lt;br /&gt;
; &amp;lt;code&amp;gt;whitesmith&amp;lt;/code&amp;gt;&lt;br /&gt;
: Popularized by the examples that came with Whitesmiths C, an early commercial C compiler.&lt;br /&gt;
; &amp;lt;code&amp;gt;stroustrup&amp;lt;/code&amp;gt;&lt;br /&gt;
: What Stroustrup, the author of C++ used in his book&lt;br /&gt;
; &amp;lt;code&amp;gt;ellemtel&amp;lt;/code&amp;gt;&lt;br /&gt;
: Popular C++ coding standards as defined by “Programming in C++, Rules and Recommendations,” Erik Nyquist and Mats Henricson, Ellemtel&lt;br /&gt;
; &amp;lt;code&amp;gt;linux&amp;lt;/code&amp;gt;&lt;br /&gt;
: What the Linux developers use for kernel development&lt;br /&gt;
; &amp;lt;code&amp;gt;python&amp;lt;/code&amp;gt;&lt;br /&gt;
: What Python developers use for extension modules&lt;br /&gt;
; &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt;&lt;br /&gt;
: The default style for java-mode (see below)&lt;br /&gt;
; &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;&lt;br /&gt;
: When you want to define your own style&lt;br /&gt;
&lt;br /&gt;
You can look the [http://cc-mode.sourceforge.net/html-manual/Built_002din-Styles.html#Built_002din-Styles cc-mode documentation] for a complete list of builtin style.&lt;br /&gt;
For visual example of each style you can look the [http://en.wikipedia.org/wiki/Indent_style Wikipedia article on indenting style].&lt;br /&gt;
&lt;br /&gt;
* The default style is set via the variable {{Variable|c-default-style}}&lt;br /&gt;
* Use {{CommandKeys|C-c .|c-set-style}} to change the indentation style of the current buffer.&lt;br /&gt;
* The amount of space use to indent is set via the variable {{Variable|c-basic-offset}}.&lt;br /&gt;
&lt;br /&gt;
To set the default style to K&amp;amp;R and use 4 spaces, add this to your {{EmacsConfigFile}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
; set k&amp;amp;r style&lt;br /&gt;
(setq c-default-style &amp;quot;k&amp;amp;r&amp;quot;)&lt;br /&gt;
; indent with 4 spaces&lt;br /&gt;
(setq c-basic-offset 4)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[GNU/Linux]] =&lt;br /&gt;
&amp;lt;!-- Customization/Notes specific to GNU/Linux goes here --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[OS X]] =&lt;br /&gt;
&amp;lt;!-- Customization/Notes specific to OS X goes here --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Windows]] =&lt;br /&gt;
&amp;lt;!-- Customization/Notes specific to Windows goes here --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Emacs-24]] =&lt;br /&gt;
&amp;lt;!-- Customization/Notes specific to Emacs-24 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Recent revision should come first. This way important information stays at top  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Emacs-23]] =&lt;br /&gt;
&amp;lt;!-- Customization/Notes specific to Emacs-22 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Recommended Reading =&lt;br /&gt;
&amp;lt;!-- Only internal links. DO NOT insert EXTERNAL LINKS --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Project Pages =&lt;br /&gt;
* [http://cc-mode.sourceforge.net/ cc-mode]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tutorial Pages =&lt;br /&gt;
&amp;lt;!-- ;[http://wiki.bazaar.canonical.com/EmacsTips Emacs as commit message editor]  --&amp;gt;&lt;br /&gt;
&amp;lt;!-- :Tips for setting up Emacs as Bazaar commit editor. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-- 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)  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Nice visual preview of different cc mode styles: http://davidha.wordpress.com/2009/05/15/emacs-cc-modes-built-in-styles-gallery/&lt;br /&gt;
* Example mode based on cc-mode http://cc-mode.sourceforge.net/derived-mode-ex.el&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;/div&gt;</summary>
		<author><name>Ruediger</name></author>
	</entry>
</feed>