<?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=Francesco</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=Francesco"/>
	<link rel="alternate" type="text/html" href="https://wikemacs.org/wiki/Special:Contributions/Francesco"/>
	<updated>2026-04-13T04:18:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikemacs.org/index.php?title=User:Francesco&amp;diff=3659</id>
		<title>User:Francesco</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=User:Francesco&amp;diff=3659"/>
		<updated>2012-12-10T10:31:03Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Added list of contributions to packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use Emacs on a daily basis, mostly for&lt;br /&gt;
* software development (C++, Python)&lt;br /&gt;
* document authoring (LaTeX)&lt;br /&gt;
* organizing my work (org)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although I'm no ELisp guru, I also try to develop or contribute to useful packages:&lt;br /&gt;
&lt;br /&gt;
* [[expand region|expand-region]] ([https://github.com/magnars/expand-region.el github page])&lt;br /&gt;
* isend-mode ([https://github.com/ffevotte/isend-mode.el github page])&lt;br /&gt;
* [[slurm|slurm.el]] ([https://github.com/ffevotte/slurm.el github page])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [[WikEmacs:Guidelines]]&lt;br /&gt;
* [[:Category:Templates]]&lt;br /&gt;
* [[Special:Categories]]&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs Contributor]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=User:Francesco&amp;diff=3658</id>
		<title>User:Francesco</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=User:Francesco&amp;diff=3658"/>
		<updated>2012-12-10T10:19:57Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Undo revision 2919 by 58.9.149.154 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use emacs on a daily basis, mostly for&lt;br /&gt;
* software development (C++, Python)&lt;br /&gt;
* document authoring (LaTeX)&lt;br /&gt;
* organizing my work (org)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [[WikEmacs:Guidelines]]&lt;br /&gt;
* [[:Category:Templates]]&lt;br /&gt;
* [[Special:Categories]]&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs Contributor]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Trailing_Whitespace&amp;diff=3174</id>
		<title>Trailing Whitespace</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Trailing_Whitespace&amp;diff=3174"/>
		<updated>2012-07-31T13:04:24Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Page on trailing whitespace handling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are different ways to handle trailing whitespace in Emacs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Visualize trailing whitespace ==&lt;br /&gt;
&lt;br /&gt;
Just set the {{Variable|show-trailing-whitespace}} variable:&lt;br /&gt;
{{Snippet|(setq show-trailing-whitespace t)}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delete trailing whitespace ==&lt;br /&gt;
&lt;br /&gt;
You can delete trailing whitespace in the entire buffer using {{Command|delete-trailing-whitespace}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To automate trailing whitespace deletion before saving the buffer in certain modes, you can add local hooks, e.g:&lt;br /&gt;
{{Snippet|(add-hook 'c-mode-hook (lambda () (add-to-list 'write-file-functions 'delete-trailing-whitespace)))}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Whitespace-mode]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Ido&amp;diff=3166</id>
		<title>Ido</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Ido&amp;diff=3166"/>
		<updated>2012-07-23T20:39:30Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Helpful keybindings */ added C-j (ido-select-text)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=Ido&lt;br /&gt;
|author = Kim F. Storm&lt;br /&gt;
|description=Interactive Do [[MiniBuffer]] Enhancement &lt;br /&gt;
|source=http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/ido.el&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Ido''' - Interactively do things is a very convenient way to find files and switch buffers.&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;
(ido-mode)&lt;br /&gt;
(ido-everywhere 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-s}}&lt;br /&gt;
: Move to next ido suggestion.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-r}}&lt;br /&gt;
: Move to previous ido suggestion.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-f}}&lt;br /&gt;
: Temporarily revert to the default find-file behavior. Handy if [[ido]] won't behave as you'd like.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-j}}&lt;br /&gt;
: Accept the provided text as is, instead of selecting the currently proposed completion.&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
=== Enable Fuzzy Matching ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(setq ido-enable-flex-matching t)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ignore Case ===&lt;br /&gt;
&lt;br /&gt;
{{Snippet|(setq ido-case-fold t)}}&lt;br /&gt;
&lt;br /&gt;
=== Virtual Buffers ===&lt;br /&gt;
&lt;br /&gt;
If [[Recentf]] is enabled, you can use {{CommandKeys|C-x b|ido-switch-buffer}} to visit recently closed files by enabling virtual buffers:&lt;br /&gt;
{{Snippet|(setq ido-use-virtual-buffers t)}}&lt;br /&gt;
&lt;br /&gt;
=== Prevent Auto-Merge ===&lt;br /&gt;
&lt;br /&gt;
Ido's default behavior when there is no matching file in the current directory is to look in recent working directories. If you prefer to limit {{CommandKeys|C-x C-f|ido-find-file}} to the current directory you can disable this ''auto-merge'' behavior:&lt;br /&gt;
{{Snippet|(setq ido-auto-merge-work-directories-length -1) ;; disable auto-merge}}&lt;br /&gt;
&lt;br /&gt;
You can still look in other working directories explicitly with {{Keys|M-s|ido-merge-work-directories}}.&lt;br /&gt;
&lt;br /&gt;
=== Directory Caching on Windows ===&lt;br /&gt;
&lt;br /&gt;
On [[Windows]] operating systems it can be unreliable to cache directory listings: the directory may not appear to be modified even though files have been added or removed. Ido caches directory listings by default, which may cause confusion on Windows. You can disable caching:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(when (equal system-type 'windows-nt)&lt;br /&gt;
  (setq ido-max-dir-file-cache 0)) ; caching unreliable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specifying sort-order ===&lt;br /&gt;
If you'd like to tweak the default file sorting, like making [[Org]]-files appear first, tell [[ido]] which files to give a higher sort priority:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(setq ido-file-extensions-order '(&amp;quot;.org&amp;quot; &amp;quot;.txt&amp;quot; &amp;quot;.py&amp;quot; &amp;quot;.emacs&amp;quot; &amp;quot;.xml&amp;quot; &amp;quot;.el&amp;quot;&lt;br /&gt;
				  &amp;quot;.ini&amp;quot; &amp;quot;.cfg&amp;quot; &amp;quot;.conf&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Helm]]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
[http://www.masteringemacs.org/articles/2010/10/10/introduction-to-ido-mode/ Introduction to Ido Mode]&lt;br /&gt;
&lt;br /&gt;
[[Category:Completion]]&lt;br /&gt;
[[Category:Built-in Package]]&lt;br /&gt;
[[Category:MiniBuffer]]&lt;br /&gt;
[[Category:Convenience]]&lt;br /&gt;
[[Category:Minor Mode]]&lt;br /&gt;
[[Category:Buffer Navigation]]&lt;br /&gt;
[[Category:Popular Package]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Flyspell-mode&amp;diff=3165</id>
		<title>Flyspell-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Flyspell-mode&amp;diff=3165"/>
		<updated>2012-07-23T20:35:11Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* See also */ added link to Spell check&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=flyspell-mode&lt;br /&gt;
|description=minor spell checking mode&lt;br /&gt;
|author=Manuel Serrano&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://bzr.savannah.gnu.org/lh/emacs/emacs-24/annotate/head:/lisp/textmodes/flyspell.el&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''flyspell-mode''' is a [[minor mode]] performing on-the-fly spelling checking. This spawns a single Ispell process and checks each word. The default flyspell behavior is to highlight incorrect words.&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;
(require 'flyspell)&lt;br /&gt;
(flyspell-mode +1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|M-$| ispell-word}}&lt;br /&gt;
: correct a word using ispell&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-auto-correct-word}}&lt;br /&gt;
: automatically corrects the current word&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-auto-correct-previous-word}}&lt;br /&gt;
: automatically corrects the previous word&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-correct-word}}&lt;br /&gt;
: display a popup with correct word suggestions&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-region}}&lt;br /&gt;
: runs flyspell on the selected region&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-buffer}}&lt;br /&gt;
: runs flyspell on the current buffer&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Spell check]]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Built-in Package]][[Category:Minor Mode]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Whitespace-mode&amp;diff=3164</id>
		<title>Whitespace-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Whitespace-mode&amp;diff=3164"/>
		<updated>2012-07-23T20:31:29Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Added author + minor changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=whitespace&lt;br /&gt;
|author=Vinicius Jose Latorre &amp;lt;viniciusjl@ig.com.br&amp;gt;&lt;br /&gt;
|description=visualizes white spaces in the buffer&lt;br /&gt;
|source=http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/whitespace.el&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''whitespace-mode''' is a [[minor mode]] to visualize blanks (tabs, spaces, newline, etc).&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
&lt;br /&gt;
Whitespace-mode is already bundled with Emacs.&lt;br /&gt;
&lt;br /&gt;
Use {{Command|whitespace-mode}} to activate it on the current&lt;br /&gt;
[[buffer]], or add the following in your {{EmacsConfigFile}}:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(whitespace-mode 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also use {{Command|global-whitespace-mode}} to activate this mode globally for all buffers. The same effect is achieved by adding the following in your {{EmacsConfigFile}}:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(global-whitespace-mode 1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Minor Mode]]&lt;br /&gt;
[[Category:Built-in Package]]&lt;br /&gt;
[[Category:Visualize]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Linum&amp;diff=3163</id>
		<title>Linum</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Linum&amp;diff=3163"/>
		<updated>2012-07-23T20:25:50Z</updated>

		<summary type="html">&lt;p&gt;Francesco: added category: built-in package&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=linum&lt;br /&gt;
|description=display line numbers in the margin&lt;br /&gt;
|author=Markus Triska &amp;lt;markus.triska@gmx.at&amp;gt;&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/linum.el&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''linum''' is a mode displaying line numbers in the left margin of the buffer.&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
&lt;br /&gt;
To globally enable '''linum''' for all buffers, add this to your {{EmacsConfigFile}}:&lt;br /&gt;
{{Snippet|(global-linum-mode 1)}}&lt;br /&gt;
&lt;br /&gt;
You can also enable '''linum''' on a per-buffer basis using {{Command|linum-mode}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&amp;lt;!-- Only internal links. DO NOT insert EXTERNAL LINKS --&amp;gt;&lt;br /&gt;
* [[line-number]]&lt;br /&gt;
* [[column-number]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Minor Mode]]&lt;br /&gt;
[[Category:Built-in Package]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Linum&amp;diff=3162</id>
		<title>Linum</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Linum&amp;diff=3162"/>
		<updated>2012-07-23T20:23:07Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Page about linum-mode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=linum&lt;br /&gt;
|description=display line numbers in the margin&lt;br /&gt;
|author=Markus Triska &amp;lt;markus.triska@gmx.at&amp;gt;&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/linum.el&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''linum''' is a mode displaying line numbers in the left margin of the buffer.&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
&lt;br /&gt;
To globally enable '''linum''' for all buffers, add this to your {{EmacsConfigFile}}:&lt;br /&gt;
{{Snippet|(global-linum-mode 1)}}&lt;br /&gt;
&lt;br /&gt;
You can also enable '''linum''' on a per-buffer basis using {{Command|linum-mode}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&amp;lt;!-- Only internal links. DO NOT insert EXTERNAL LINKS --&amp;gt;&lt;br /&gt;
* [[line-number]]&lt;br /&gt;
* [[column-number]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Minor Mode]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Rinari&amp;diff=2836</id>
		<title>Rinari</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Rinari&amp;diff=2836"/>
		<updated>2012-05-14T18:52:19Z</updated>

		<summary type="html">&lt;p&gt;Francesco: added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=rinari&lt;br /&gt;
|description=Rinari: Ruby on Rails Minor Mode for Emacs&lt;br /&gt;
|maintainer=[[Steve Purcell]]&lt;br /&gt;
|source=https://github.com/eschulte/rinari&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|Development status=active&lt;br /&gt;
|website=http://rinari.rubyforge.org/&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''R'''inari '''I'''s '''N'''ot '''A''' '''R'''uby '''I'''DE&lt;br /&gt;
&lt;br /&gt;
The most integrated Emacs environment for Rails development.&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
&lt;br /&gt;
Rinari allows for full integrated flow on a Rails project. Some of the basic tasks are: starting the webserver, running rake tasks, invoking the console all within Emacs.&lt;br /&gt;
&lt;br /&gt;
But the best feature of Rinari is that it facilitates &amp;quot;jumps&amp;quot; between different parts of a Rails based project. For example, when in '''app/model''' you can move to the corresponding RSpec based example or a controller... From a particular controller, you can jump to a corresponding view. &lt;br /&gt;
&lt;br /&gt;
Those are not the only movements, you can move between any logically related parts of a Rails project. For a demo, see the screencast located on the project's homepage.&lt;br /&gt;
&lt;br /&gt;
= Key bindings =&lt;br /&gt;
&lt;br /&gt;
Keybindings that show what actions can be done while in Rinari mode:&lt;br /&gt;
&lt;br /&gt;
;{{Keys|C-c ; '}} &lt;br /&gt;
: rinari-find-by-context&lt;br /&gt;
;{{Keys|C-c ; ;}} &lt;br /&gt;
: rinari-find-by-context&lt;br /&gt;
;{{Keys|C-c ; c}} &lt;br /&gt;
: rinari-console&lt;br /&gt;
;{{Keys|C-c ; d}} &lt;br /&gt;
: rinari-cap&lt;br /&gt;
;{{Keys|C-c ; e}} &lt;br /&gt;
: rinari-insert-erb-skeleton&lt;br /&gt;
;{{Keys|C-c ; f}} &lt;br /&gt;
: Prefix Command&lt;br /&gt;
;{{Keys|C-c ; g}} &lt;br /&gt;
: rinari-rgrep&lt;br /&gt;
;{{Keys|C-c ; p}} &lt;br /&gt;
: rinari-goto-partial&lt;br /&gt;
;{{Keys|C-c ; q}} &lt;br /&gt;
: rinari-sql&lt;br /&gt;
;{{Keys|C-c ; r}} &lt;br /&gt;
: rinari-rake&lt;br /&gt;
;{{Keys|C-c ; s}} &lt;br /&gt;
: rinari-script&lt;br /&gt;
;{{Keys|C-c ; t}} &lt;br /&gt;
: rinari-test&lt;br /&gt;
;{{Keys|C-c ; w}} &lt;br /&gt;
: rinari-web-server&lt;br /&gt;
;{{Keys|C-c ; x}} &lt;br /&gt;
: rinari-extract-partial&lt;br /&gt;
&lt;br /&gt;
;{{Keys|C-c ; f ;}} &lt;br /&gt;
: rinari-find-by-context&lt;br /&gt;
;{{Keys|C-c ; f C}} &lt;br /&gt;
: rinari-find-cells&lt;br /&gt;
;{{Keys|C-c ; f F}} &lt;br /&gt;
: rinari-find-features&lt;br /&gt;
;{{Keys|C-c ; f M}} &lt;br /&gt;
: rinari-find-mailer&lt;br /&gt;
;{{Keys|C-c ; f S}} &lt;br /&gt;
: rinari-find-steps&lt;br /&gt;
;{{Keys|C-c ; f Y}} &lt;br /&gt;
: rinari-find-sass&lt;br /&gt;
;{{Keys|C-c ; f a}} &lt;br /&gt;
: rinari-find-application&lt;br /&gt;
;{{Keys|C-c ; f c}} &lt;br /&gt;
: rinari-find-controller&lt;br /&gt;
;{{Keys|C-c ; f e}} &lt;br /&gt;
: rinari-find-environment&lt;br /&gt;
;{{Keys|C-c ; f f}} &lt;br /&gt;
: rinari-find-file-in-project&lt;br /&gt;
;{{Keys|C-c ; f h}} &lt;br /&gt;
: rinari-find-helper&lt;br /&gt;
;{{Keys|C-c ; f i}} &lt;br /&gt;
: rinari-find-migration&lt;br /&gt;
;{{Keys|C-c ; f j}} &lt;br /&gt;
: rinari-find-javascript&lt;br /&gt;
;{{Keys|C-c ; f l}} &lt;br /&gt;
: rinari-find-lib&lt;br /&gt;
;{{Keys|C-c ; f m}} &lt;br /&gt;
: rinari-find-model&lt;br /&gt;
;{{Keys|C-c ; f n}} &lt;br /&gt;
: rinari-find-configuration&lt;br /&gt;
;{{Keys|C-c ; f o}} &lt;br /&gt;
: rinari-find-log&lt;br /&gt;
;{{Keys|C-c ; f p}} &lt;br /&gt;
: rinari-find-public&lt;br /&gt;
;{{Keys|C-c ; f r}} &lt;br /&gt;
: rinari-find-rspec&lt;br /&gt;
;{{Keys|C-c ; f s}} &lt;br /&gt;
: rinari-find-script&lt;br /&gt;
;{{Keys|C-c ; f t}} &lt;br /&gt;
: rinari-find-test&lt;br /&gt;
;{{Keys|C-c ; f u}} &lt;br /&gt;
: rinari-find-plugin&lt;br /&gt;
;{{Keys|C-c ; f v}} &lt;br /&gt;
: rinari-find-view&lt;br /&gt;
;{{Keys|C-c ; f w}} &lt;br /&gt;
: rinari-find-worker&lt;br /&gt;
;{{Keys|C-c ; f x}} &lt;br /&gt;
: rinari-find-fixture&lt;br /&gt;
;{{Keys|C-c ; f y}} &lt;br /&gt;
: rinari-find-stylesheet&lt;br /&gt;
;{{Keys|C-c ; f z}} &lt;br /&gt;
: rinari-find-rspec-fixture&lt;br /&gt;
&lt;br /&gt;
[[Category:Third Party Package]][[Category:Minor Mode]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Flyspell-mode&amp;diff=2835</id>
		<title>Flyspell-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Flyspell-mode&amp;diff=2835"/>
		<updated>2012-05-14T18:49:24Z</updated>

		<summary type="html">&lt;p&gt;Francesco: adde&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=flyspell-mode&lt;br /&gt;
|description=minor spell checking mode&lt;br /&gt;
|author=Manuel Serrano&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://bzr.savannah.gnu.org/lh/emacs/emacs-24/annotate/head:/lisp/textmodes/flyspell.el&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''flyspell-mode''' is a [[minor mode]] performing on-the-fly spelling checking. This spawns a single Ispell process and checks each word. The default flyspell behavior is to highlight incorrect words.&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;
(require 'flyspell)&lt;br /&gt;
(flyspell-mode +1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|M-$| ispell-word}}&lt;br /&gt;
: correct a word using ispell&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-auto-correct-word}}&lt;br /&gt;
: automatically corrects the current word&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-auto-correct-previous-word}}&lt;br /&gt;
: automatically corrects the previous word&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-correct-word}}&lt;br /&gt;
: display a popup with correct word suggestions&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-region}}&lt;br /&gt;
: runs flyspell on the selected region&lt;br /&gt;
&lt;br /&gt;
; {{Command|flyspell-buffer}}&lt;br /&gt;
: runs flyspell on the current buffer&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Built-in Package]][[Category:Minor Mode]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=2820</id>
		<title>Quick Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=2820"/>
		<updated>2012-05-07T15:13:02Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Registers */ window configuration in registers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This reference-like tutorial is aimed at Emacs beginners and probably others too. If you know how to do some basic editing and navigation in Emacs and want to quickly go through more of its capabilities, then this tutorial is for you. If you are looking for the semantics or key-bindings of a specific feature, this tutorial aims to be for you since it is a subset of the online Emacs documentation. If you are giving an introductory presentation about Emacs, this tutorial might help you.&lt;br /&gt;
&lt;br /&gt;
== Description and History ==&lt;br /&gt;
&lt;br /&gt;
* Emacs is an extensible, customizable, self-documenting, real-time display text editor.&lt;br /&gt;
* Originally, a set of editing macros for the TECO editor.&lt;br /&gt;
* GNU Emacs was developed by R. Stallman and G. Steele.&lt;br /&gt;
* Technically, GNU Emacs is an elisp interpreter with text editing extensions.&lt;br /&gt;
* GNU Emacs contains thousands of commands and allows the user to combine them into elisp procedures (called macros) to automate work.&lt;br /&gt;
* Commands are, themselves, elisp procedures and the GNU Emacs configuration '''init''' file is an elisp program.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
; Extensible : The user can define, un-define and redefine commands as well as re-use available commands into macros.&lt;br /&gt;
; Customizable : The user can change properties of emacs elements including the key-bindings and the display.&lt;br /&gt;
; Self-documenting : All defined commands and macros get automatic preliminary documentation (bound keys and parameters).&lt;br /&gt;
&lt;br /&gt;
== Why Emacs? ==&lt;br /&gt;
&lt;br /&gt;
* Easily programmable&lt;br /&gt;
* Kill ring&lt;br /&gt;
* Rectangular editing&lt;br /&gt;
* Registers&lt;br /&gt;
* Command repetition&lt;br /&gt;
* Macros and Lisp procedures&lt;br /&gt;
* Modes&lt;br /&gt;
* Init file&lt;br /&gt;
* Remote files&lt;br /&gt;
* Shell, Terminal Emulator, IRC, Email, News, File Manager, Process Manager, Project Manager, Tetris, Doctor and many others.&lt;br /&gt;
&lt;br /&gt;
== Terminology and Structure ==&lt;br /&gt;
&lt;br /&gt;
{{details|Emacs Terminology}}&lt;br /&gt;
&lt;br /&gt;
; Buffer : A container for data (text, completions)&lt;br /&gt;
; Point : The current position in the buffer (cursor)&lt;br /&gt;
; Window : A visual container for a buffer&lt;br /&gt;
; Frame : A visual container for one or more windows&lt;br /&gt;
; Kill : The equivalent of cutting&lt;br /&gt;
; Yank : The equivalent of copying&lt;br /&gt;
; Kill Ring : A circular clipboard (very handy)&lt;br /&gt;
; Mark : The coordinates of a selection&lt;br /&gt;
; Region : The text inside a mark&lt;br /&gt;
; Modeline : A status line&lt;br /&gt;
; Minibuffer : A small buffer for commands and arguments&lt;br /&gt;
; Mode : The current type of data being edited&lt;br /&gt;
&lt;br /&gt;
== Modeline ==&lt;br /&gt;
&lt;br /&gt;
The Modeline is used to report different pieces of information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-cs:ch-fr  buf      pos line   (major minor)-----&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; cs : Character set (or coding system)&lt;br /&gt;
; &amp;amp;#58; : Newline mode&lt;br /&gt;
; ch : File modification status&lt;br /&gt;
; - or @ : File is local or remote&lt;br /&gt;
; fr : Frame name on text terminals&lt;br /&gt;
; buf : Buffer/file name&lt;br /&gt;
; pos : Point/cursor position&lt;br /&gt;
; line : Current line and column number&lt;br /&gt;
; modes (major minor) : Currently loaded major and minor modes&lt;br /&gt;
&lt;br /&gt;
== Keybind Terms and Minibuffer ==&lt;br /&gt;
&lt;br /&gt;
Emacs has some different naming of command/control keys (probably coming from the old days).&lt;br /&gt;
&lt;br /&gt;
; M : Meta key, Alt or ESC&lt;br /&gt;
; C : Control key&lt;br /&gt;
; S : Shift key&lt;br /&gt;
; {{Keys|M-a}} : Press '''a''' while holding the meta key&lt;br /&gt;
; {{Keys|C-M-a}} : Press '''a''' while holding the control and meta keys&lt;br /&gt;
; {{Keys|C-a b}} : Press '''a''' while holding the control key then press '''b'''&lt;br /&gt;
; {{Keys|C-a C-b}} : Press '''a''' and '''b''' both while holding the control key&lt;br /&gt;
; {{Keys|C-a M-b}} : Press '''a''' with control then '''b''' with meta&lt;br /&gt;
&lt;br /&gt;
The Minibuffer is used to input commands, arguments and setting different modes (which some of are bound to keys or menu actions).&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-x}} : Execute a command by name&lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Loading ===&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;$ emacs # opens Emacs at the scratch buffer&amp;lt;/pre&amp;gt;&lt;br /&gt;
; &amp;lt;pre&amp;gt;$ emacs [file1] [file2] ... # opens Emacs in split-window mode&amp;lt;/pre&amp;gt;&lt;br /&gt;
; {{Keys|C-x C-f}} ''filename'' : loads a new buffer from ''filename''&lt;br /&gt;
&lt;br /&gt;
=== Saving ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-s}} : saves the current buffer&lt;br /&gt;
; {{Keys|C-x C-w}} ''filename'' : saves the current buffer as ''filename''&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-c}} : quits emacs&lt;br /&gt;
; {{Keys|C-g C-g}} : cancels key-sequence&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows are used to display buffer contents. Windows can be split and resized inside an Emacs frame. The minibuffer has its own window.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x 2}} : open a window vertically&lt;br /&gt;
; {{Keys|C-x 3}} : open a window horizontally&lt;br /&gt;
; {{Keys|C-x 0}} : close the current window&lt;br /&gt;
; {{Keys|C-x 1}} : close all other windows&lt;br /&gt;
; ESC ESC ESC : close all other windows&lt;br /&gt;
; {{Keys|C-x o}} : move to another window&lt;br /&gt;
; {{Keys|C-x ^}} : increase window size vertically&lt;br /&gt;
; {{Keys|C-x } }} : increase window size horizontally&lt;br /&gt;
; {{Keys|C-x {}} : decrease window size horizontally&lt;br /&gt;
; {{Keys|C-x -}} : shrink window to buffer size&lt;br /&gt;
; {{Keys|C-x +}} : make all windows equal in size&lt;br /&gt;
&lt;br /&gt;
== Navigation and Movement ==&lt;br /&gt;
&lt;br /&gt;
=== Word ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-&amp;amp;larr;}} : moves one word backwards&lt;br /&gt;
; {{Keys|C-&amp;amp;rarr;}} : moves one word forward&lt;br /&gt;
&lt;br /&gt;
=== Line ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-a}} : goes to beginning of the line (Home)&lt;br /&gt;
; {{Keys|C-e}} : goes to end of the line (End)&lt;br /&gt;
; {{Keys|M-a}} : goes to beginning of the sentence&lt;br /&gt;
; {{Keys|M-e}} : goes to end of the sentence&lt;br /&gt;
; {{Keys|M-g g}} : goes to given line by number&lt;br /&gt;
; {{Keys|M-m}} : moves point to the first non-whitespace character in this line&lt;br /&gt;
&lt;br /&gt;
=== Paragraph ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-&amp;amp;uarr;}} : moves up one paragraph&lt;br /&gt;
; {{Keys|C-&amp;amp;darr;}} : moves down one paragraph&lt;br /&gt;
&lt;br /&gt;
=== Window ===&lt;br /&gt;
; {{Keys|M-0 M-r}} : moves to the top of window&lt;br /&gt;
; {{Keys|M-r}} : moves to the middle of window&lt;br /&gt;
; {{Keys|M-- M-r}} : moves to the bottom of window&lt;br /&gt;
&lt;br /&gt;
=== Buffer ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x [}} : moves to the beginning of the buffer&lt;br /&gt;
; {{Keys|C-x ]}} : moves to the end of the buffer&lt;br /&gt;
; {{Keys|C-l}} : moves the buffer to position point&lt;br /&gt;
; {{Keys|C-x b}} : switches to another buffer by name&lt;br /&gt;
; {{Keys|C-x &amp;amp;larr;}} or {{Keys|C-x &amp;amp;rarr;}} : switches to previous or next buffer&lt;br /&gt;
; {{Keys|C-x k}} : kills the current buffer&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
=== Character ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-d}} : deletes next character&lt;br /&gt;
; {{Keys|C-t}} : transposes current character with previous one&lt;br /&gt;
; {{Keys|C-q TAB}} : inserts a TAB verbatim&lt;br /&gt;
&lt;br /&gt;
=== Word ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-d}}         : kills the next word&lt;br /&gt;
; {{Keys|M-- M-d}}     : kills to the previous word&lt;br /&gt;
; {{Keys|M-/}}         : expands current word&lt;br /&gt;
; {{Keys|M-/ SPC M-/}} : expands current word and grabs next one&lt;br /&gt;
; {{Keys|M-C-/}}       : completes current word&lt;br /&gt;
; {{Keys|M-t}}         : transposes current word with next one&lt;br /&gt;
; {{Keys|M-- M-t}}     : transposes current word with previous one&lt;br /&gt;
; {{Keys|M-c}}         : capitalizes next word&lt;br /&gt;
; {{Keys|M-- M-c}}     : capitalizes previous word&lt;br /&gt;
; {{Keys|M-l}}         : lowercase next word&lt;br /&gt;
; {{Keys|M-- M-l}}     : lowercase previous word&lt;br /&gt;
; {{Keys|M-u}}         : uppercase next word&lt;br /&gt;
; {{Keys|M-- M-u}}     : uppercase previous word&lt;br /&gt;
&lt;br /&gt;
=== Line ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-o M-s}} : center a line&lt;br /&gt;
; {{Keys|C-S-BACKSPC}} : kills current line&lt;br /&gt;
; {{Keys|C-k}} : kills from point to EOL&lt;br /&gt;
; {{Keys|M-u C-k}} : kills to the previous line&lt;br /&gt;
; {{Keys|C-a C-k}} : goes to BOL then kills to EOL&lt;br /&gt;
; {{Keys|TAB}} : indents line depending on current mode&lt;br /&gt;
; {{Keys|C-o}} : breaks line before/after point&lt;br /&gt;
; {{Keys|C-x C-t}} : transpose current line with previous one&lt;br /&gt;
; {{Keys|M-0 C-x}} C-t : transpose current line with one at mark&lt;br /&gt;
; delete-matching-lines : delete lines matching a regexp&lt;br /&gt;
&lt;br /&gt;
== Prefix Arguments and Command Repetition ==&lt;br /&gt;
&lt;br /&gt;
Passing numerical arguments to commands can alter their behavior (e.g., repetition or inversion). Passing an argument can be done before M-x or key bindings.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-''n'' ''com''}}   : run ''com'' with prefix arg ''n''&lt;br /&gt;
; {{Keys|M-- ''com''}}       : run ''com'' with negative prefix arg&lt;br /&gt;
; {{Keys|C-u ''n'' ''com''}} : run ''com'' with prefix arg ''n''&lt;br /&gt;
; {{Keys|C-u ''com''}}       : run ''com'' with prefix arg 4 (the default)&lt;br /&gt;
; {{Keys|C-u C-u ''com''}}   : run ''com'' with prefix arg 16 (four times the four times the default)&lt;br /&gt;
; {{Keys|C-u C-u ''com''}}   : run ''com'' with prefix arg 64 (four times the four times the four times the default)&lt;br /&gt;
; {{Keys|C-u}}               : also terminates the prefix argument&lt;br /&gt;
; {{Keys|C-x [z]+}}          : repeats the previous z''th'' command (including its args)&lt;br /&gt;
; {{Keys|C-x ESC ESC}}       : repeats last command that used the minibuffer&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u 5 0 C-k}} : will kill 50 lines&lt;br /&gt;
; {{Keys|C-u 5 C-u 0}} : will insert 5 zeros&lt;br /&gt;
&lt;br /&gt;
== Search and Replace ==&lt;br /&gt;
&lt;br /&gt;
=== Incremental search ===&lt;br /&gt;
&lt;br /&gt;
{{Details|Incremental Search}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-s keyword}} : search forward&lt;br /&gt;
; {{Keys|C-r keyword}} : search backward&lt;br /&gt;
&lt;br /&gt;
=== Non-incremental search ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-s RET keyword}} : search forward&lt;br /&gt;
; {{Keys|C-r RET keyword}} : search backward&lt;br /&gt;
&lt;br /&gt;
=== Regular Expression Search ===&lt;br /&gt;
&lt;br /&gt;
{{Details|Regexp Search}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-s expression}} : search regexp forward&lt;br /&gt;
; {{Keys|C-M-r expression}} : search regexp backward&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* '''ESC''' will cancel and go to original point. '''RET''' will end at the current point.&lt;br /&gt;
* Searches are case-insensitive unless an uppercase letter is found in the search string.&lt;br /&gt;
* While searching, {{Keys|C-w}} will increment the search term with the current word.&lt;br /&gt;
&lt;br /&gt;
=== Unconditional Replace ===&lt;br /&gt;
&lt;br /&gt;
; replace-string : replaces a string with another&lt;br /&gt;
; replace-regexp : replaces a regexp match with a string&lt;br /&gt;
&lt;br /&gt;
=== Query Replace (Conditional Replace) ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-%}} : conditional replacement of a string&lt;br /&gt;
; query-replace-regexp : conditional replacement of a regular expression&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Replaces are case-insensitive unless an uppercase letter is found in the match string.&lt;br /&gt;
* Replaces work from position to end of buffer unless a mark is active.&lt;br /&gt;
* After a replace, the position will be at the end of the last match. {{Keys|C-u C-SPC}} to go back to the position before the replace started.&lt;br /&gt;
* During a query replace, '''SPC''' will apply a replace and '''DEL''' will skip.&lt;br /&gt;
&lt;br /&gt;
== Undo and Redo ==&lt;br /&gt;
&lt;br /&gt;
In Emacs, there is no special redo function. Instead, there is only an undo function and redo can be achieved by ''undo-ing'' an undo.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-/}} : undo a single change&lt;br /&gt;
; {{Keys|C-g}} : break the chain of undos&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* If a mark is active, undo will only affect the marked region.&lt;br /&gt;
&lt;br /&gt;
== Regions ==&lt;br /&gt;
&lt;br /&gt;
Emacs uses the mark and point to denote a [[Region|region]] (i.e., a selection).&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-SPC}}       : creates a region (marks area)&lt;br /&gt;
; {{Keys|C-x C-x}}     : swaps mark and point in a region&lt;br /&gt;
; {{Keys|C-u C-x C-x}} : swaps mark and point without region&lt;br /&gt;
; {{Keys|C-x h}}       : marks the entire buffer&lt;br /&gt;
; {{Keys|M-h}}         : marks the paragraph around the point&lt;br /&gt;
; {{Keys|TAB}}         : indents the current region&lt;br /&gt;
; {{Keys|M-@}}         : incrementally mark next word&lt;br /&gt;
&lt;br /&gt;
=== Kill, Yank and Paste Regions ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-w}}                 : kills the currently selected region&lt;br /&gt;
; {{Keys|M-w}}                 : copies the currently selected region&lt;br /&gt;
; {{Keys|C-y}} ({{Keys|M-y}})* : yanks and cycles from the kill ring&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Yank is the copy command in vi and the paste command in emacs.&lt;br /&gt;
&lt;br /&gt;
== Rectangles ==&lt;br /&gt;
&lt;br /&gt;
[[Rectangles]] are marked regions between the columns of the point and the mark. Applying operations on rectangles is some sort of vertical editing.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x r k}} : kill the rectangle&lt;br /&gt;
; {{Keys|C-x r d}} : delete the rectangle&lt;br /&gt;
; {{Keys|C-x r y}} : yank the last killed rectangle&lt;br /&gt;
; {{Keys|C-x r o}} : push text to fill rectangle with spaces (open)&lt;br /&gt;
; {{Keys|C-x r c}} : replace rectangle text with spaces (clear)&lt;br /&gt;
; {{Keys|C-x r t}} : replace each line in rectangle with text&lt;br /&gt;
&lt;br /&gt;
== Registers ==&lt;br /&gt;
&lt;br /&gt;
[[Registers]] are places where you can store anything: text, position, rectangle, configuration, filename, etc... Registers are named with single character symbols: ''a'', ''A'' and ''3'' are three different registers.&lt;br /&gt;
&lt;br /&gt;
; view-register              : view the contents of a register&lt;br /&gt;
; {{Keys|C-x r SPC ''r''}}   : record current point position in register ''r''&lt;br /&gt;
; {{Keys|C-x r w ''r''}}     : record current window configuration in register ''r''&lt;br /&gt;
; {{Keys|C-x r j ''r''}}     : jump to position (or window configuration) in register ''r''&lt;br /&gt;
; {{Keys|C-x r s ''r''}}     : save region to register ''r''&lt;br /&gt;
; {{Keys|C-u C-x r s ''r''}} : kill region to register ''r''&lt;br /&gt;
; {{Keys|C-x r i ''r''}}     : insert text from register ''r''&lt;br /&gt;
; append-to-register         : append region to register&lt;br /&gt;
; prepend-to-register        : prepend region to register&lt;br /&gt;
; {{Keys|C-x r r ''r''}}     : save rectangle into register ''r''&lt;br /&gt;
&lt;br /&gt;
== Bookmarks ==&lt;br /&gt;
&lt;br /&gt;
[[Bookmarks]] are like registers but persistent. They can also be named.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x r m ''foo''}} : bookmark file and point to ''foo''&lt;br /&gt;
; {{Keys|C-x r b ''foo''}} : jump to bookmark called ''foo''&lt;br /&gt;
; {{Keys|C-x r l}}         : list all bookmarks&lt;br /&gt;
; bookmark-save            : save all bookmarks&lt;br /&gt;
; bookmark-delete          : delete a bookmark&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
&lt;br /&gt;
[[Keyboard macros]] are user defined commands using the Emacs command language. A user can ''record'' and ''replay'' a macro, useful for simple repeatable tasks. More complex tasks (e.g., conditions, loops) must be implemented in ''elisp''. Macros are recorded in a macro ring.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|F3}}           : start macro definition or insert counter&lt;br /&gt;
; {{Keys|C-x (}}        : start macro definition only&lt;br /&gt;
; {{Keys|F4}}           : end macro definition or call macro&lt;br /&gt;
; {{Keys|C-x e}}        : end macro definition and call macro&lt;br /&gt;
; {{Keys|C-x )}}        : end macro definition only&lt;br /&gt;
; {{Keys|C-u C-u F3}}   : append commands to last macro&lt;br /&gt;
; {{Keys|C-u F3}}       : re-run last macro then append commands to it&lt;br /&gt;
; {{Keys|C-x C-k r}}    : run macro on region&lt;br /&gt;
; {{Keys|C-x C-k C-n}}  : rotate to select the next macro in the ring&lt;br /&gt;
; {{Keys|C-x C-k C-p}}  : rotate to select the previous macro in the ring&lt;br /&gt;
&lt;br /&gt;
=== Macro Counters ===&lt;br /&gt;
&lt;br /&gt;
Every macro definition can have a counter to insert into the buffer.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|F3}}           : inside a macro definition, inserts the counter&lt;br /&gt;
; {{Keys|C-x C-k C-i}}  : outside a macro definition, inserts the counter&lt;br /&gt;
; {{Keys|C-x C-k C-c}}  : set the macro counter value&lt;br /&gt;
; {{Keys|C-x C-k C-f}}  : set the macro counter format&lt;br /&gt;
&lt;br /&gt;
=== Saving Macros ===&lt;br /&gt;
&lt;br /&gt;
Macros can be named and saved.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-k n}} : name the most recently defined macro&lt;br /&gt;
; {{Keys|C-x C-k b}} : keybind the most recently defined macro&lt;br /&gt;
; insert-kbd-macro   : insert macro into buffer as elisp code&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* It is best to use the reserved key bindings {{Keys|C-x C-k [a-zA-Z0-9]}} as to not cause problems with other bindings. {{Keys|C-x C-k b 4}} will define {{Keys|C-x C-k 4}} as a binding.&lt;br /&gt;
&lt;br /&gt;
== Alignment ==&lt;br /&gt;
&lt;br /&gt;
Emacs contains alignment commands. Sometimes those depend on the current mode (i.e., the language).&lt;br /&gt;
&lt;br /&gt;
; align                     : aligns depending on mode&lt;br /&gt;
; align-regexp              : aligns using a regular expression&lt;br /&gt;
; {{Keys|C-u align-regexp}} : aligns using a regular expression helper&lt;br /&gt;
; align-current             : aligns current paragraph depending on mode&lt;br /&gt;
&lt;br /&gt;
== Sorting ==&lt;br /&gt;
&lt;br /&gt;
When sorting, prefixing with {{Keys|C-u}} sorts in descending order.&lt;br /&gt;
&lt;br /&gt;
; sort-lines                      : sort region by lines&lt;br /&gt;
; sort-paragraphs                 : sort region by paragraphs&lt;br /&gt;
; {{Keys|C-u ''n'' sort-fields}}  : sort lines in region by n''th'' field&lt;br /&gt;
; {{Keys|C-u -''n'' sort-fields}} : sort lines in region by n''th'' field from right&lt;br /&gt;
; sort-numeric-fields             : interpret field as number and not text&lt;br /&gt;
; sort-columns                    : sort by column specified by marked region&lt;br /&gt;
; reverse-region                  : reverses current region&lt;br /&gt;
&lt;br /&gt;
== Tables ==&lt;br /&gt;
&lt;br /&gt;
Emacs has support for creating and editing text-based tables by keeping track of their properties (e.g., position, size) in the buffer. When a buffer is saved to file, those properties are lost.&lt;br /&gt;
&lt;br /&gt;
; table-insert             : interactively insert a table into buffer&lt;br /&gt;
; table-recognize          : detect properties of all tables in the buffer&lt;br /&gt;
; table-unrecognize        : remove special table properties&lt;br /&gt;
; table-recognize-region   : detect properties of tables in region&lt;br /&gt;
; table-unrecognize-region : forget properties of tables in region&lt;br /&gt;
; table-recognize-table    : detect properties of table at point&lt;br /&gt;
; table-unrecognize-table  : remove properties of table at point&lt;br /&gt;
&lt;br /&gt;
=== Cell resizing ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;gt;}} : widen cell at point by ''n'' characters&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;lt;}} : narrow cell at point by ''n'' characters&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;#65373;}} : heighten cell at point by ''n'' lines&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;#65371;}} : shorten cell at point by ''n'' lines&lt;br /&gt;
&lt;br /&gt;
=== Cell movement ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|TAB}}   : move to cell on right&lt;br /&gt;
; {{Keys|S-TAB}} : move to cell on left&lt;br /&gt;
&lt;br /&gt;
=== Cell merging and splitting ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-c C-c *}} : interactively merge two cells&lt;br /&gt;
; {{Keys|C-+}}        : split cell horizontally&lt;br /&gt;
; {{Keys|C--}}       : split cell vertically&lt;br /&gt;
&lt;br /&gt;
=== Rows and Columns ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u ''n'' table-insert-row}}    : insert ''n'' rows&lt;br /&gt;
; {{Keys|C-u ''n'' table-delete-row}}    : delete ''n'' rows&lt;br /&gt;
; {{Keys|C-u ''n'' table-insert-column}} : insert ''n'' columns&lt;br /&gt;
; {{Keys|C-u ''n'' table-delete-column}} : delete ''n'' columns&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-:}}          : interactively justify cell, column or row text&lt;br /&gt;
; {{Keys|C-!}}          : toggle table fixed width mode&lt;br /&gt;
; table-generate-source : table code in Latex, HTML or Cals&lt;br /&gt;
&lt;br /&gt;
== Goodies ==&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x TAB}}      : force an indentation on a region&lt;br /&gt;
; {{Keys|M-q}}          : indents and breaks paragraph into multiple lines&lt;br /&gt;
; {{Keys|M-;}}          : comments a region or adds comment to line&lt;br /&gt;
; {{Keys|M-(}}          : inserts a new lisp function (parenthesis)&lt;br /&gt;
; {{Keys|M-)}}          : checks balanced parenthesis and opens line&lt;br /&gt;
; {{Keys|C-x i}}        : inserts file contents at point position&lt;br /&gt;
; {{Keys|M-!}}          : run shell command&lt;br /&gt;
; {{Keys|C-u M-!}}      : run shell command and insert output&lt;br /&gt;
; {{Keys|M-❘}}          : run shell command on marked region&lt;br /&gt;
; {{Keys|C-u M-❘}}      : run shell command on and replace marked region&lt;br /&gt;
; insert-buffer         : inserts buffer contents at point position&lt;br /&gt;
; copy-to-buffer        : copy region content to a buffer&lt;br /&gt;
; kill-some-buffers     : interactively kill buffers&lt;br /&gt;
; electric-buffer-list  : interactive buffer list&lt;br /&gt;
; toggle-truncate-lines : do not split lines over visual lines&lt;br /&gt;
; visual-line-mode      : split lines by words&lt;br /&gt;
; viper-mode            : vi compatibility mode&lt;br /&gt;
&lt;br /&gt;
== Setting Key Bindings ==&lt;br /&gt;
&lt;br /&gt;
{{Details|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
Emacs has a global keymap which maps between keys and commands. Each major mode can define, re-define or un-define its own key bindings, creating a local keymap (e.g., c-mode). Each minor mode can do so too (e.g., flymake). Each portion of text can also do so (e.g., tables).&lt;br /&gt;
&lt;br /&gt;
=== Some prefix keys ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x}} : command prefix key&lt;br /&gt;
; {{Keys|M-}}  : command prefix key&lt;br /&gt;
; {{Keys|C-c}} : mode specific prefix key&lt;br /&gt;
; {{Keys|C-h}} : help prefix key&lt;br /&gt;
&lt;br /&gt;
=== Commands to bind keys ===&lt;br /&gt;
&lt;br /&gt;
; global-set-key ''k'' ''com'' : bind key ''k'' to ''com'' globally&lt;br /&gt;
; local-set-key ''k'' ''com''  : bind key ''k'' to ''com'' locally (major mode)&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Menu and mouse key bindings can also be set.&lt;br /&gt;
&lt;br /&gt;
== Storing Key Bindings ==&lt;br /&gt;
&lt;br /&gt;
In the Emacs ''init'' file, you can either set global key bindings or ''hook'' local key bindings to mode hooks (i.e., callbacks, slots).&lt;br /&gt;
&lt;br /&gt;
; global-set-key      : adds a binding to the global map&lt;br /&gt;
; local-set-key       : adds a binding to the local (major mode) map&lt;br /&gt;
; kbd                 : converts a string to a key sequence&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
==== Global key binding ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(global-set-key (kbd 'C-c d') 'duplicate-line)&lt;br /&gt;
(global-set-key (kbd 'C-c d') (kbd 'C-a C-@ C-e M-w RET C-y'))&lt;br /&gt;
(global-set-key (kbd 'C-c d') '\C-a\C- \C-n\M-w\C-y')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Local key binding ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-hook 'LaTeX-mode-hook (lambda () (local-set-key (kbd 'C-c n') 'forward-paragraph)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Emacs Help System ==&lt;br /&gt;
&lt;br /&gt;
Emacs has a handy help system for quick lookup of various features, topics, functions and key bindings.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-h ?}}       : show the help system shortcuts&lt;br /&gt;
; {{Keys|C-h ''key''}} : run help system with shortcut ''key''&lt;br /&gt;
&lt;br /&gt;
=== Some useful help keys ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-h a}}             : show apropos page about a keyword&lt;br /&gt;
; {{Keys|C-h k ''keybind''}} : show help for function bound to ''keybind''&lt;br /&gt;
; {{Keys|C-h b}}             : show all key bindings&lt;br /&gt;
; {{Keys|C-h f}}             : show documentation for function&lt;br /&gt;
; {{Keys|C-h m}}             : show documentation for current modes&lt;br /&gt;
; {{Keys|C-h v}}             : show documentation for variable&lt;br /&gt;
; {{Keys|C-h w}}             : show what keys a command is bound to&lt;br /&gt;
; {{Keys|C-h t}}             : start the emacs tutorial&lt;br /&gt;
; {{Keys|''prefix'' C-h}}    : show all key binds starting with ''prefix''&lt;br /&gt;
&lt;br /&gt;
== Modes ==&lt;br /&gt;
&lt;br /&gt;
Modes are used to define the type of data being edited in buffers, or what Emacs calls “the language”.&lt;br /&gt;
&lt;br /&gt;
Every buffer has exactly one [[Major mode|major mode]] which defines its language (C, Java, English, IRC, etc...) and provides basic elements like syntax highlighting and (re)defines functions and their key bindings for relevant actions (e.g., comments).&lt;br /&gt;
&lt;br /&gt;
Each buffer can have zero or more [[Minor mode|minor modes]] enabled which provide non-specific functionality such as spell checking or line wrapping (i.e., mode independent).&lt;br /&gt;
&lt;br /&gt;
== Mode: ediff ==&lt;br /&gt;
&lt;br /&gt;
ediff (emacs-diff) is a mode for Emacs where you can view and merge differences between two or three buffers.&lt;br /&gt;
&lt;br /&gt;
; ediff         : select files to view their differences&lt;br /&gt;
; ediff-buffers : select buffers to view their differences&lt;br /&gt;
&lt;br /&gt;
=== In ediff-mode ===&lt;br /&gt;
&lt;br /&gt;
; | : switch between horizontal/vertical view&lt;br /&gt;
; ? : view ediff help&lt;br /&gt;
; p : view previous difference&lt;br /&gt;
; n : view next difference&lt;br /&gt;
; a : set buffer b’s area to what’s in a’s&lt;br /&gt;
; b : set buffer a’s area to what’s in b’s&lt;br /&gt;
; q : quit ediff session&lt;br /&gt;
&lt;br /&gt;
== Mode: Spell Checking ==&lt;br /&gt;
&lt;br /&gt;
{{Details|Spell check}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-$}} : check spelling at word or active region&lt;br /&gt;
; ispell       : check active region or buffer, during which pressing '''i''' will accept the current word and insert it into the user's dictionary, pressing '''?''' will show help and pressing '''RET''' will end the current '''ispell''' session.&lt;br /&gt;
; {{Keys|ESC TAB}}    : complete current word from dictionary&lt;br /&gt;
; flyspell-mode       : enable “on the fly” spell checking&lt;br /&gt;
; flyspell-prog-mode  : spell check comments and strings (programming mode)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Emacs Wiki: http://emacswiki.org/&lt;br /&gt;
* Emacs Docs: https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html&lt;br /&gt;
* Emacs Help&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=2819</id>
		<title>Quick Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=2819"/>
		<updated>2012-05-07T15:07:34Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Navigation and Movement */ fixed key binding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This reference-like tutorial is aimed at Emacs beginners and probably others too. If you know how to do some basic editing and navigation in Emacs and want to quickly go through more of its capabilities, then this tutorial is for you. If you are looking for the semantics or key-bindings of a specific feature, this tutorial aims to be for you since it is a subset of the online Emacs documentation. If you are giving an introductory presentation about Emacs, this tutorial might help you.&lt;br /&gt;
&lt;br /&gt;
== Description and History ==&lt;br /&gt;
&lt;br /&gt;
* Emacs is an extensible, customizable, self-documenting, real-time display text editor.&lt;br /&gt;
* Originally, a set of editing macros for the TECO editor.&lt;br /&gt;
* GNU Emacs was developed by R. Stallman and G. Steele.&lt;br /&gt;
* Technically, GNU Emacs is an elisp interpreter with text editing extensions.&lt;br /&gt;
* GNU Emacs contains thousands of commands and allows the user to combine them into elisp procedures (called macros) to automate work.&lt;br /&gt;
* Commands are, themselves, elisp procedures and the GNU Emacs configuration '''init''' file is an elisp program.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
; Extensible : The user can define, un-define and redefine commands as well as re-use available commands into macros.&lt;br /&gt;
; Customizable : The user can change properties of emacs elements including the key-bindings and the display.&lt;br /&gt;
; Self-documenting : All defined commands and macros get automatic preliminary documentation (bound keys and parameters).&lt;br /&gt;
&lt;br /&gt;
== Why Emacs? ==&lt;br /&gt;
&lt;br /&gt;
* Easily programmable&lt;br /&gt;
* Kill ring&lt;br /&gt;
* Rectangular editing&lt;br /&gt;
* Registers&lt;br /&gt;
* Command repetition&lt;br /&gt;
* Macros and Lisp procedures&lt;br /&gt;
* Modes&lt;br /&gt;
* Init file&lt;br /&gt;
* Remote files&lt;br /&gt;
* Shell, Terminal Emulator, IRC, Email, News, File Manager, Process Manager, Project Manager, Tetris, Doctor and many others.&lt;br /&gt;
&lt;br /&gt;
== Terminology and Structure ==&lt;br /&gt;
&lt;br /&gt;
{{details|Emacs Terminology}}&lt;br /&gt;
&lt;br /&gt;
; Buffer : A container for data (text, completions)&lt;br /&gt;
; Point : The current position in the buffer (cursor)&lt;br /&gt;
; Window : A visual container for a buffer&lt;br /&gt;
; Frame : A visual container for one or more windows&lt;br /&gt;
; Kill : The equivalent of cutting&lt;br /&gt;
; Yank : The equivalent of copying&lt;br /&gt;
; Kill Ring : A circular clipboard (very handy)&lt;br /&gt;
; Mark : The coordinates of a selection&lt;br /&gt;
; Region : The text inside a mark&lt;br /&gt;
; Modeline : A status line&lt;br /&gt;
; Minibuffer : A small buffer for commands and arguments&lt;br /&gt;
; Mode : The current type of data being edited&lt;br /&gt;
&lt;br /&gt;
== Modeline ==&lt;br /&gt;
&lt;br /&gt;
The Modeline is used to report different pieces of information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-cs:ch-fr  buf      pos line   (major minor)-----&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; cs : Character set (or coding system)&lt;br /&gt;
; &amp;amp;#58; : Newline mode&lt;br /&gt;
; ch : File modification status&lt;br /&gt;
; - or @ : File is local or remote&lt;br /&gt;
; fr : Frame name on text terminals&lt;br /&gt;
; buf : Buffer/file name&lt;br /&gt;
; pos : Point/cursor position&lt;br /&gt;
; line : Current line and column number&lt;br /&gt;
; modes (major minor) : Currently loaded major and minor modes&lt;br /&gt;
&lt;br /&gt;
== Keybind Terms and Minibuffer ==&lt;br /&gt;
&lt;br /&gt;
Emacs has some different naming of command/control keys (probably coming from the old days).&lt;br /&gt;
&lt;br /&gt;
; M : Meta key, Alt or ESC&lt;br /&gt;
; C : Control key&lt;br /&gt;
; S : Shift key&lt;br /&gt;
; {{Keys|M-a}} : Press '''a''' while holding the meta key&lt;br /&gt;
; {{Keys|C-M-a}} : Press '''a''' while holding the control and meta keys&lt;br /&gt;
; {{Keys|C-a b}} : Press '''a''' while holding the control key then press '''b'''&lt;br /&gt;
; {{Keys|C-a C-b}} : Press '''a''' and '''b''' both while holding the control key&lt;br /&gt;
; {{Keys|C-a M-b}} : Press '''a''' with control then '''b''' with meta&lt;br /&gt;
&lt;br /&gt;
The Minibuffer is used to input commands, arguments and setting different modes (which some of are bound to keys or menu actions).&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-x}} : Execute a command by name&lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Loading ===&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;$ emacs # opens Emacs at the scratch buffer&amp;lt;/pre&amp;gt;&lt;br /&gt;
; &amp;lt;pre&amp;gt;$ emacs [file1] [file2] ... # opens Emacs in split-window mode&amp;lt;/pre&amp;gt;&lt;br /&gt;
; {{Keys|C-x C-f}} ''filename'' : loads a new buffer from ''filename''&lt;br /&gt;
&lt;br /&gt;
=== Saving ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-s}} : saves the current buffer&lt;br /&gt;
; {{Keys|C-x C-w}} ''filename'' : saves the current buffer as ''filename''&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-c}} : quits emacs&lt;br /&gt;
; {{Keys|C-g C-g}} : cancels key-sequence&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows are used to display buffer contents. Windows can be split and resized inside an Emacs frame. The minibuffer has its own window.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x 2}} : open a window vertically&lt;br /&gt;
; {{Keys|C-x 3}} : open a window horizontally&lt;br /&gt;
; {{Keys|C-x 0}} : close the current window&lt;br /&gt;
; {{Keys|C-x 1}} : close all other windows&lt;br /&gt;
; ESC ESC ESC : close all other windows&lt;br /&gt;
; {{Keys|C-x o}} : move to another window&lt;br /&gt;
; {{Keys|C-x ^}} : increase window size vertically&lt;br /&gt;
; {{Keys|C-x } }} : increase window size horizontally&lt;br /&gt;
; {{Keys|C-x {}} : decrease window size horizontally&lt;br /&gt;
; {{Keys|C-x -}} : shrink window to buffer size&lt;br /&gt;
; {{Keys|C-x +}} : make all windows equal in size&lt;br /&gt;
&lt;br /&gt;
== Navigation and Movement ==&lt;br /&gt;
&lt;br /&gt;
=== Word ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-&amp;amp;larr;}} : moves one word backwards&lt;br /&gt;
; {{Keys|C-&amp;amp;rarr;}} : moves one word forward&lt;br /&gt;
&lt;br /&gt;
=== Line ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-a}} : goes to beginning of the line (Home)&lt;br /&gt;
; {{Keys|C-e}} : goes to end of the line (End)&lt;br /&gt;
; {{Keys|M-a}} : goes to beginning of the sentence&lt;br /&gt;
; {{Keys|M-e}} : goes to end of the sentence&lt;br /&gt;
; {{Keys|M-g g}} : goes to given line by number&lt;br /&gt;
; {{Keys|M-m}} : moves point to the first non-whitespace character in this line&lt;br /&gt;
&lt;br /&gt;
=== Paragraph ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-&amp;amp;uarr;}} : moves up one paragraph&lt;br /&gt;
; {{Keys|C-&amp;amp;darr;}} : moves down one paragraph&lt;br /&gt;
&lt;br /&gt;
=== Window ===&lt;br /&gt;
; {{Keys|M-0 M-r}} : moves to the top of window&lt;br /&gt;
; {{Keys|M-r}} : moves to the middle of window&lt;br /&gt;
; {{Keys|M-- M-r}} : moves to the bottom of window&lt;br /&gt;
&lt;br /&gt;
=== Buffer ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x [}} : moves to the beginning of the buffer&lt;br /&gt;
; {{Keys|C-x ]}} : moves to the end of the buffer&lt;br /&gt;
; {{Keys|C-l}} : moves the buffer to position point&lt;br /&gt;
; {{Keys|C-x b}} : switches to another buffer by name&lt;br /&gt;
; {{Keys|C-x &amp;amp;larr;}} or {{Keys|C-x &amp;amp;rarr;}} : switches to previous or next buffer&lt;br /&gt;
; {{Keys|C-x k}} : kills the current buffer&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
=== Character ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-d}} : deletes next character&lt;br /&gt;
; {{Keys|C-t}} : transposes current character with previous one&lt;br /&gt;
; {{Keys|C-q TAB}} : inserts a TAB verbatim&lt;br /&gt;
&lt;br /&gt;
=== Word ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-d}}         : kills the next word&lt;br /&gt;
; {{Keys|M-- M-d}}     : kills to the previous word&lt;br /&gt;
; {{Keys|M-/}}         : expands current word&lt;br /&gt;
; {{Keys|M-/ SPC M-/}} : expands current word and grabs next one&lt;br /&gt;
; {{Keys|M-C-/}}       : completes current word&lt;br /&gt;
; {{Keys|M-t}}         : transposes current word with next one&lt;br /&gt;
; {{Keys|M-- M-t}}     : transposes current word with previous one&lt;br /&gt;
; {{Keys|M-c}}         : capitalizes next word&lt;br /&gt;
; {{Keys|M-- M-c}}     : capitalizes previous word&lt;br /&gt;
; {{Keys|M-l}}         : lowercase next word&lt;br /&gt;
; {{Keys|M-- M-l}}     : lowercase previous word&lt;br /&gt;
; {{Keys|M-u}}         : uppercase next word&lt;br /&gt;
; {{Keys|M-- M-u}}     : uppercase previous word&lt;br /&gt;
&lt;br /&gt;
=== Line ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-o M-s}} : center a line&lt;br /&gt;
; {{Keys|C-S-BACKSPC}} : kills current line&lt;br /&gt;
; {{Keys|C-k}} : kills from point to EOL&lt;br /&gt;
; {{Keys|M-u C-k}} : kills to the previous line&lt;br /&gt;
; {{Keys|C-a C-k}} : goes to BOL then kills to EOL&lt;br /&gt;
; {{Keys|TAB}} : indents line depending on current mode&lt;br /&gt;
; {{Keys|C-o}} : breaks line before/after point&lt;br /&gt;
; {{Keys|C-x C-t}} : transpose current line with previous one&lt;br /&gt;
; {{Keys|M-0 C-x}} C-t : transpose current line with one at mark&lt;br /&gt;
; delete-matching-lines : delete lines matching a regexp&lt;br /&gt;
&lt;br /&gt;
== Prefix Arguments and Command Repetition ==&lt;br /&gt;
&lt;br /&gt;
Passing numerical arguments to commands can alter their behavior (e.g., repetition or inversion). Passing an argument can be done before M-x or key bindings.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-''n'' ''com''}}   : run ''com'' with prefix arg ''n''&lt;br /&gt;
; {{Keys|M-- ''com''}}       : run ''com'' with negative prefix arg&lt;br /&gt;
; {{Keys|C-u ''n'' ''com''}} : run ''com'' with prefix arg ''n''&lt;br /&gt;
; {{Keys|C-u ''com''}}       : run ''com'' with prefix arg 4 (the default)&lt;br /&gt;
; {{Keys|C-u C-u ''com''}}   : run ''com'' with prefix arg 16 (four times the four times the default)&lt;br /&gt;
; {{Keys|C-u C-u ''com''}}   : run ''com'' with prefix arg 64 (four times the four times the four times the default)&lt;br /&gt;
; {{Keys|C-u}}               : also terminates the prefix argument&lt;br /&gt;
; {{Keys|C-x [z]+}}          : repeats the previous z''th'' command (including its args)&lt;br /&gt;
; {{Keys|C-x ESC ESC}}       : repeats last command that used the minibuffer&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u 5 0 C-k}} : will kill 50 lines&lt;br /&gt;
; {{Keys|C-u 5 C-u 0}} : will insert 5 zeros&lt;br /&gt;
&lt;br /&gt;
== Search and Replace ==&lt;br /&gt;
&lt;br /&gt;
=== Incremental search ===&lt;br /&gt;
&lt;br /&gt;
{{Details|Incremental Search}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-s keyword}} : search forward&lt;br /&gt;
; {{Keys|C-r keyword}} : search backward&lt;br /&gt;
&lt;br /&gt;
=== Non-incremental search ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-s RET keyword}} : search forward&lt;br /&gt;
; {{Keys|C-r RET keyword}} : search backward&lt;br /&gt;
&lt;br /&gt;
=== Regular Expression Search ===&lt;br /&gt;
&lt;br /&gt;
{{Details|Regexp Search}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-s expression}} : search regexp forward&lt;br /&gt;
; {{Keys|C-M-r expression}} : search regexp backward&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* '''ESC''' will cancel and go to original point. '''RET''' will end at the current point.&lt;br /&gt;
* Searches are case-insensitive unless an uppercase letter is found in the search string.&lt;br /&gt;
* While searching, {{Keys|C-w}} will increment the search term with the current word.&lt;br /&gt;
&lt;br /&gt;
=== Unconditional Replace ===&lt;br /&gt;
&lt;br /&gt;
; replace-string : replaces a string with another&lt;br /&gt;
; replace-regexp : replaces a regexp match with a string&lt;br /&gt;
&lt;br /&gt;
=== Query Replace (Conditional Replace) ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-%}} : conditional replacement of a string&lt;br /&gt;
; query-replace-regexp : conditional replacement of a regular expression&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Replaces are case-insensitive unless an uppercase letter is found in the match string.&lt;br /&gt;
* Replaces work from position to end of buffer unless a mark is active.&lt;br /&gt;
* After a replace, the position will be at the end of the last match. {{Keys|C-u C-SPC}} to go back to the position before the replace started.&lt;br /&gt;
* During a query replace, '''SPC''' will apply a replace and '''DEL''' will skip.&lt;br /&gt;
&lt;br /&gt;
== Undo and Redo ==&lt;br /&gt;
&lt;br /&gt;
In Emacs, there is no special redo function. Instead, there is only an undo function and redo can be achieved by ''undo-ing'' an undo.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-/}} : undo a single change&lt;br /&gt;
; {{Keys|C-g}} : break the chain of undos&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* If a mark is active, undo will only affect the marked region.&lt;br /&gt;
&lt;br /&gt;
== Regions ==&lt;br /&gt;
&lt;br /&gt;
Emacs uses the mark and point to denote a [[Region|region]] (i.e., a selection).&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-SPC}}       : creates a region (marks area)&lt;br /&gt;
; {{Keys|C-x C-x}}     : swaps mark and point in a region&lt;br /&gt;
; {{Keys|C-u C-x C-x}} : swaps mark and point without region&lt;br /&gt;
; {{Keys|C-x h}}       : marks the entire buffer&lt;br /&gt;
; {{Keys|M-h}}         : marks the paragraph around the point&lt;br /&gt;
; {{Keys|TAB}}         : indents the current region&lt;br /&gt;
; {{Keys|M-@}}         : incrementally mark next word&lt;br /&gt;
&lt;br /&gt;
=== Kill, Yank and Paste Regions ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-w}}                 : kills the currently selected region&lt;br /&gt;
; {{Keys|M-w}}                 : copies the currently selected region&lt;br /&gt;
; {{Keys|C-y}} ({{Keys|M-y}})* : yanks and cycles from the kill ring&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Yank is the copy command in vi and the paste command in emacs.&lt;br /&gt;
&lt;br /&gt;
== Rectangles ==&lt;br /&gt;
&lt;br /&gt;
[[Rectangles]] are marked regions between the columns of the point and the mark. Applying operations on rectangles is some sort of vertical editing.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x r k}} : kill the rectangle&lt;br /&gt;
; {{Keys|C-x r d}} : delete the rectangle&lt;br /&gt;
; {{Keys|C-x r y}} : yank the last killed rectangle&lt;br /&gt;
; {{Keys|C-x r o}} : push text to fill rectangle with spaces (open)&lt;br /&gt;
; {{Keys|C-x r c}} : replace rectangle text with spaces (clear)&lt;br /&gt;
; {{Keys|C-x r t}} : replace each line in rectangle with text&lt;br /&gt;
&lt;br /&gt;
== Registers ==&lt;br /&gt;
&lt;br /&gt;
[[Registers]] are places where you can store anything: text, position, rectangle, configuration, filename, etc... Registers are named with single character symbols: ''a'', ''A'' and ''3'' are three different registers.&lt;br /&gt;
&lt;br /&gt;
; view-register              : view the contents of a register&lt;br /&gt;
; {{Keys|C-x r SPC ''r''}}   : record current point position in register ''r''&lt;br /&gt;
; {{Keys|C-x r j ''r''}}     : jump to position in register ''r''&lt;br /&gt;
; {{Keys|C-x r s ''r''}}     : save region to register ''r''&lt;br /&gt;
; {{Keys|C-u C-x r s ''r''}} : kill region to register ''r''&lt;br /&gt;
; {{Keys|C-x r i ''r''}}     : insert text from register ''r''&lt;br /&gt;
; append-to-register         : append region to register&lt;br /&gt;
; prepend-to-register        : prepend region to register&lt;br /&gt;
; {{Keys|C-x r r ''r''}}     : save rectangle into register ''r''&lt;br /&gt;
&lt;br /&gt;
== Bookmarks ==&lt;br /&gt;
&lt;br /&gt;
[[Bookmarks]] are like registers but persistent. They can also be named.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x r m ''foo''}} : bookmark file and point to ''foo''&lt;br /&gt;
; {{Keys|C-x r b ''foo''}} : jump to bookmark called ''foo''&lt;br /&gt;
; {{Keys|C-x r l}}         : list all bookmarks&lt;br /&gt;
; bookmark-save            : save all bookmarks&lt;br /&gt;
; bookmark-delete          : delete a bookmark&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
&lt;br /&gt;
[[Keyboard macros]] are user defined commands using the Emacs command language. A user can ''record'' and ''replay'' a macro, useful for simple repeatable tasks. More complex tasks (e.g., conditions, loops) must be implemented in ''elisp''. Macros are recorded in a macro ring.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|F3}}           : start macro definition or insert counter&lt;br /&gt;
; {{Keys|C-x (}}        : start macro definition only&lt;br /&gt;
; {{Keys|F4}}           : end macro definition or call macro&lt;br /&gt;
; {{Keys|C-x e}}        : end macro definition and call macro&lt;br /&gt;
; {{Keys|C-x )}}        : end macro definition only&lt;br /&gt;
; {{Keys|C-u C-u F3}}   : append commands to last macro&lt;br /&gt;
; {{Keys|C-u F3}}       : re-run last macro then append commands to it&lt;br /&gt;
; {{Keys|C-x C-k r}}    : run macro on region&lt;br /&gt;
; {{Keys|C-x C-k C-n}}  : rotate to select the next macro in the ring&lt;br /&gt;
; {{Keys|C-x C-k C-p}}  : rotate to select the previous macro in the ring&lt;br /&gt;
&lt;br /&gt;
=== Macro Counters ===&lt;br /&gt;
&lt;br /&gt;
Every macro definition can have a counter to insert into the buffer.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|F3}}           : inside a macro definition, inserts the counter&lt;br /&gt;
; {{Keys|C-x C-k C-i}}  : outside a macro definition, inserts the counter&lt;br /&gt;
; {{Keys|C-x C-k C-c}}  : set the macro counter value&lt;br /&gt;
; {{Keys|C-x C-k C-f}}  : set the macro counter format&lt;br /&gt;
&lt;br /&gt;
=== Saving Macros ===&lt;br /&gt;
&lt;br /&gt;
Macros can be named and saved.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-k n}} : name the most recently defined macro&lt;br /&gt;
; {{Keys|C-x C-k b}} : keybind the most recently defined macro&lt;br /&gt;
; insert-kbd-macro   : insert macro into buffer as elisp code&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* It is best to use the reserved key bindings {{Keys|C-x C-k [a-zA-Z0-9]}} as to not cause problems with other bindings. {{Keys|C-x C-k b 4}} will define {{Keys|C-x C-k 4}} as a binding.&lt;br /&gt;
&lt;br /&gt;
== Alignment ==&lt;br /&gt;
&lt;br /&gt;
Emacs contains alignment commands. Sometimes those depend on the current mode (i.e., the language).&lt;br /&gt;
&lt;br /&gt;
; align                     : aligns depending on mode&lt;br /&gt;
; align-regexp              : aligns using a regular expression&lt;br /&gt;
; {{Keys|C-u align-regexp}} : aligns using a regular expression helper&lt;br /&gt;
; align-current             : aligns current paragraph depending on mode&lt;br /&gt;
&lt;br /&gt;
== Sorting ==&lt;br /&gt;
&lt;br /&gt;
When sorting, prefixing with {{Keys|C-u}} sorts in descending order.&lt;br /&gt;
&lt;br /&gt;
; sort-lines                      : sort region by lines&lt;br /&gt;
; sort-paragraphs                 : sort region by paragraphs&lt;br /&gt;
; {{Keys|C-u ''n'' sort-fields}}  : sort lines in region by n''th'' field&lt;br /&gt;
; {{Keys|C-u -''n'' sort-fields}} : sort lines in region by n''th'' field from right&lt;br /&gt;
; sort-numeric-fields             : interpret field as number and not text&lt;br /&gt;
; sort-columns                    : sort by column specified by marked region&lt;br /&gt;
; reverse-region                  : reverses current region&lt;br /&gt;
&lt;br /&gt;
== Tables ==&lt;br /&gt;
&lt;br /&gt;
Emacs has support for creating and editing text-based tables by keeping track of their properties (e.g., position, size) in the buffer. When a buffer is saved to file, those properties are lost.&lt;br /&gt;
&lt;br /&gt;
; table-insert             : interactively insert a table into buffer&lt;br /&gt;
; table-recognize          : detect properties of all tables in the buffer&lt;br /&gt;
; table-unrecognize        : remove special table properties&lt;br /&gt;
; table-recognize-region   : detect properties of tables in region&lt;br /&gt;
; table-unrecognize-region : forget properties of tables in region&lt;br /&gt;
; table-recognize-table    : detect properties of table at point&lt;br /&gt;
; table-unrecognize-table  : remove properties of table at point&lt;br /&gt;
&lt;br /&gt;
=== Cell resizing ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;gt;}} : widen cell at point by ''n'' characters&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;lt;}} : narrow cell at point by ''n'' characters&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;#65373;}} : heighten cell at point by ''n'' lines&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;#65371;}} : shorten cell at point by ''n'' lines&lt;br /&gt;
&lt;br /&gt;
=== Cell movement ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|TAB}}   : move to cell on right&lt;br /&gt;
; {{Keys|S-TAB}} : move to cell on left&lt;br /&gt;
&lt;br /&gt;
=== Cell merging and splitting ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-c C-c *}} : interactively merge two cells&lt;br /&gt;
; {{Keys|C-+}}        : split cell horizontally&lt;br /&gt;
; {{Keys|C--}}       : split cell vertically&lt;br /&gt;
&lt;br /&gt;
=== Rows and Columns ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u ''n'' table-insert-row}}    : insert ''n'' rows&lt;br /&gt;
; {{Keys|C-u ''n'' table-delete-row}}    : delete ''n'' rows&lt;br /&gt;
; {{Keys|C-u ''n'' table-insert-column}} : insert ''n'' columns&lt;br /&gt;
; {{Keys|C-u ''n'' table-delete-column}} : delete ''n'' columns&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-:}}          : interactively justify cell, column or row text&lt;br /&gt;
; {{Keys|C-!}}          : toggle table fixed width mode&lt;br /&gt;
; table-generate-source : table code in Latex, HTML or Cals&lt;br /&gt;
&lt;br /&gt;
== Goodies ==&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x TAB}}      : force an indentation on a region&lt;br /&gt;
; {{Keys|M-q}}          : indents and breaks paragraph into multiple lines&lt;br /&gt;
; {{Keys|M-;}}          : comments a region or adds comment to line&lt;br /&gt;
; {{Keys|M-(}}          : inserts a new lisp function (parenthesis)&lt;br /&gt;
; {{Keys|M-)}}          : checks balanced parenthesis and opens line&lt;br /&gt;
; {{Keys|C-x i}}        : inserts file contents at point position&lt;br /&gt;
; {{Keys|M-!}}          : run shell command&lt;br /&gt;
; {{Keys|C-u M-!}}      : run shell command and insert output&lt;br /&gt;
; {{Keys|M-❘}}          : run shell command on marked region&lt;br /&gt;
; {{Keys|C-u M-❘}}      : run shell command on and replace marked region&lt;br /&gt;
; insert-buffer         : inserts buffer contents at point position&lt;br /&gt;
; copy-to-buffer        : copy region content to a buffer&lt;br /&gt;
; kill-some-buffers     : interactively kill buffers&lt;br /&gt;
; electric-buffer-list  : interactive buffer list&lt;br /&gt;
; toggle-truncate-lines : do not split lines over visual lines&lt;br /&gt;
; visual-line-mode      : split lines by words&lt;br /&gt;
; viper-mode            : vi compatibility mode&lt;br /&gt;
&lt;br /&gt;
== Setting Key Bindings ==&lt;br /&gt;
&lt;br /&gt;
{{Details|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
Emacs has a global keymap which maps between keys and commands. Each major mode can define, re-define or un-define its own key bindings, creating a local keymap (e.g., c-mode). Each minor mode can do so too (e.g., flymake). Each portion of text can also do so (e.g., tables).&lt;br /&gt;
&lt;br /&gt;
=== Some prefix keys ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x}} : command prefix key&lt;br /&gt;
; {{Keys|M-}}  : command prefix key&lt;br /&gt;
; {{Keys|C-c}} : mode specific prefix key&lt;br /&gt;
; {{Keys|C-h}} : help prefix key&lt;br /&gt;
&lt;br /&gt;
=== Commands to bind keys ===&lt;br /&gt;
&lt;br /&gt;
; global-set-key ''k'' ''com'' : bind key ''k'' to ''com'' globally&lt;br /&gt;
; local-set-key ''k'' ''com''  : bind key ''k'' to ''com'' locally (major mode)&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Menu and mouse key bindings can also be set.&lt;br /&gt;
&lt;br /&gt;
== Storing Key Bindings ==&lt;br /&gt;
&lt;br /&gt;
In the Emacs ''init'' file, you can either set global key bindings or ''hook'' local key bindings to mode hooks (i.e., callbacks, slots).&lt;br /&gt;
&lt;br /&gt;
; global-set-key      : adds a binding to the global map&lt;br /&gt;
; local-set-key       : adds a binding to the local (major mode) map&lt;br /&gt;
; kbd                 : converts a string to a key sequence&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
==== Global key binding ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(global-set-key (kbd 'C-c d') 'duplicate-line)&lt;br /&gt;
(global-set-key (kbd 'C-c d') (kbd 'C-a C-@ C-e M-w RET C-y'))&lt;br /&gt;
(global-set-key (kbd 'C-c d') '\C-a\C- \C-n\M-w\C-y')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Local key binding ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-hook 'LaTeX-mode-hook (lambda () (local-set-key (kbd 'C-c n') 'forward-paragraph)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Emacs Help System ==&lt;br /&gt;
&lt;br /&gt;
Emacs has a handy help system for quick lookup of various features, topics, functions and key bindings.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-h ?}}       : show the help system shortcuts&lt;br /&gt;
; {{Keys|C-h ''key''}} : run help system with shortcut ''key''&lt;br /&gt;
&lt;br /&gt;
=== Some useful help keys ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-h a}}             : show apropos page about a keyword&lt;br /&gt;
; {{Keys|C-h k ''keybind''}} : show help for function bound to ''keybind''&lt;br /&gt;
; {{Keys|C-h b}}             : show all key bindings&lt;br /&gt;
; {{Keys|C-h f}}             : show documentation for function&lt;br /&gt;
; {{Keys|C-h m}}             : show documentation for current modes&lt;br /&gt;
; {{Keys|C-h v}}             : show documentation for variable&lt;br /&gt;
; {{Keys|C-h w}}             : show what keys a command is bound to&lt;br /&gt;
; {{Keys|C-h t}}             : start the emacs tutorial&lt;br /&gt;
; {{Keys|''prefix'' C-h}}    : show all key binds starting with ''prefix''&lt;br /&gt;
&lt;br /&gt;
== Modes ==&lt;br /&gt;
&lt;br /&gt;
Modes are used to define the type of data being edited in buffers, or what Emacs calls “the language”.&lt;br /&gt;
&lt;br /&gt;
Every buffer has exactly one [[Major mode|major mode]] which defines its language (C, Java, English, IRC, etc...) and provides basic elements like syntax highlighting and (re)defines functions and their key bindings for relevant actions (e.g., comments).&lt;br /&gt;
&lt;br /&gt;
Each buffer can have zero or more [[Minor mode|minor modes]] enabled which provide non-specific functionality such as spell checking or line wrapping (i.e., mode independent).&lt;br /&gt;
&lt;br /&gt;
== Mode: ediff ==&lt;br /&gt;
&lt;br /&gt;
ediff (emacs-diff) is a mode for Emacs where you can view and merge differences between two or three buffers.&lt;br /&gt;
&lt;br /&gt;
; ediff         : select files to view their differences&lt;br /&gt;
; ediff-buffers : select buffers to view their differences&lt;br /&gt;
&lt;br /&gt;
=== In ediff-mode ===&lt;br /&gt;
&lt;br /&gt;
; | : switch between horizontal/vertical view&lt;br /&gt;
; ? : view ediff help&lt;br /&gt;
; p : view previous difference&lt;br /&gt;
; n : view next difference&lt;br /&gt;
; a : set buffer b’s area to what’s in a’s&lt;br /&gt;
; b : set buffer a’s area to what’s in b’s&lt;br /&gt;
; q : quit ediff session&lt;br /&gt;
&lt;br /&gt;
== Mode: Spell Checking ==&lt;br /&gt;
&lt;br /&gt;
{{Details|Spell check}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-$}} : check spelling at word or active region&lt;br /&gt;
; ispell       : check active region or buffer, during which pressing '''i''' will accept the current word and insert it into the user's dictionary, pressing '''?''' will show help and pressing '''RET''' will end the current '''ispell''' session.&lt;br /&gt;
; {{Keys|ESC TAB}}    : complete current word from dictionary&lt;br /&gt;
; flyspell-mode       : enable “on the fly” spell checking&lt;br /&gt;
; flyspell-prog-mode  : spell check comments and strings (programming mode)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Emacs Wiki: http://emacswiki.org/&lt;br /&gt;
* Emacs Docs: https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html&lt;br /&gt;
* Emacs Help&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Talk:Quick_Tutorial&amp;diff=2767</id>
		<title>Talk:Quick Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Talk:Quick_Tutorial&amp;diff=2767"/>
		<updated>2012-04-20T20:18:59Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Internal Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Internal Links ==&lt;br /&gt;
This page is getting really Nice. It would be good if we have more internal links to other pages. So people reading this page will have a chance to read/learn more about individual features [[User:Kindahero]] 17:05, 20 April 2012 (EEST)&lt;br /&gt;
: I was thinking exactly the same thing :-) [[User:Bozhidar|Bozhidar]]&lt;br /&gt;
: +1. I started adding internal links and created [[Template:Details]] to format links to detailed sections (I more or less copied it from Wikipedia) -- [[User:Francesco|Francesco]] 23:18, 20 April 2012 (EEST)&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=2766</id>
		<title>Quick Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=2766"/>
		<updated>2012-04-20T20:15:51Z</updated>

		<summary type="html">&lt;p&gt;Francesco: added links to other articles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This reference-like tutorial is aimed at Emacs beginners and probably others too. If you know how to do some basic editing and navigation in Emacs and want to quickly go through more of its capabilities, then this tutorial is for you. If you are looking for the semantics or key-bindings of a specific feature, this tutorial aims to be for you since it is a subset of the online Emacs documentation. If you are giving an introductory presentation about Emacs, this tutorial might help you.&lt;br /&gt;
&lt;br /&gt;
== Description and History ==&lt;br /&gt;
&lt;br /&gt;
* Emacs is an extensible, customizable, self-documenting, real-time display text editor.&lt;br /&gt;
* Originally, a set of editing macros for the TECO editor.&lt;br /&gt;
* GNU Emacs was developed by R. Stallman and G. Steele.&lt;br /&gt;
* Technically, GNU Emacs is an elisp interpreter with text editing extensions.&lt;br /&gt;
* GNU Emacs contains thousands of commands and allows the user to combine them into elisp procedures (called macros) to automate work.&lt;br /&gt;
* Commands are, themselves, elisp procedures and the GNU Emacs configuration '''init''' file is an elisp program.&lt;br /&gt;
&lt;br /&gt;
== Technical Description ==&lt;br /&gt;
&lt;br /&gt;
; Extensible : The user can define, un-define and redefine commands as well as re-use available commands into macros.&lt;br /&gt;
; Customizable : The user can change properties of emacs elements including the key-bindings and the display.&lt;br /&gt;
; Self-documenting : All defined commands and macros get automatic preliminary documentation (bound keys and parameters).&lt;br /&gt;
&lt;br /&gt;
== Why Emacs? ==&lt;br /&gt;
&lt;br /&gt;
* Easily programmable&lt;br /&gt;
* Kill ring&lt;br /&gt;
* Rectangular editing&lt;br /&gt;
* Registers&lt;br /&gt;
* Command repetition&lt;br /&gt;
* Macros and Lisp procedures&lt;br /&gt;
* Modes&lt;br /&gt;
* Init file&lt;br /&gt;
* Remote files&lt;br /&gt;
* Shell, Terminal Emulator, IRC, Email, News, File Manager, Process Manager, Project Manager, Tetris, Doctor and many others.&lt;br /&gt;
&lt;br /&gt;
== Terminology and Structure ==&lt;br /&gt;
&lt;br /&gt;
{{details|Emacs Terminology}}&lt;br /&gt;
&lt;br /&gt;
; Buffer : A container for data (text, completions)&lt;br /&gt;
; Point : The current position in the buffer (cursor)&lt;br /&gt;
; Window : A visual container for a buffer&lt;br /&gt;
; Frame : A visual container for one or more windows&lt;br /&gt;
; Kill : The equivalent of cutting&lt;br /&gt;
; Yank : The equivalent of copying&lt;br /&gt;
; Kill Ring : A circular clipboard (very handy)&lt;br /&gt;
; Mark : The coordinates of a selection&lt;br /&gt;
; Region : The text inside a mark&lt;br /&gt;
; Modeline : A status line&lt;br /&gt;
; Minibuffer : A small buffer for commands and arguments&lt;br /&gt;
; Mode : The current type of data being edited&lt;br /&gt;
&lt;br /&gt;
== Modeline ==&lt;br /&gt;
&lt;br /&gt;
The Modeline is used to report different pieces of information.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-cs:ch-fr  buf      pos line   (major minor)-----&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; cs : Character set (or coding system)&lt;br /&gt;
; &amp;amp;#58; : Newline mode&lt;br /&gt;
; ch : File modification status&lt;br /&gt;
; - or @ : File is local or remote&lt;br /&gt;
; fr : Frame name on text terminals&lt;br /&gt;
; buf : Buffer/file name&lt;br /&gt;
; pos : Point/cursor position&lt;br /&gt;
; line : Current line and column number&lt;br /&gt;
; modes (major minor) : Currently loaded major and minor modes&lt;br /&gt;
&lt;br /&gt;
== Keybind Terms and Minibuffer ==&lt;br /&gt;
&lt;br /&gt;
Emacs has some different naming of command/control keys (probably coming from the old days).&lt;br /&gt;
&lt;br /&gt;
; M : Meta key, Alt or ESC&lt;br /&gt;
; C : Control key&lt;br /&gt;
; S : Shift key&lt;br /&gt;
; {{Keys|M-a}} : Press '''a''' while holding the meta key&lt;br /&gt;
; {{Keys|C-M-a}} : Press '''a''' while holding the control and meta keys&lt;br /&gt;
; {{Keys|C-a b}} : Press '''a''' while holding the control key then press '''b'''&lt;br /&gt;
; {{Keys|C-a C-b}} : Press '''a''' and '''b''' both while holding the control key&lt;br /&gt;
; {{Keys|C-a M-b}} : Press '''a''' with control then '''b''' with meta&lt;br /&gt;
&lt;br /&gt;
The Minibuffer is used to input commands, arguments and setting different modes (which some of are bound to keys or menu actions).&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-x}} : Execute a command by name&lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Loading ===&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;pre&amp;gt;$ emacs # opens Emacs at the scratch buffer&amp;lt;/pre&amp;gt;&lt;br /&gt;
; &amp;lt;pre&amp;gt;$ emacs [file1] [file2] ... # opens Emacs in split-window mode&amp;lt;/pre&amp;gt;&lt;br /&gt;
; {{Keys|C-x C-f}} ''filename'' : loads a new buffer from ''filename''&lt;br /&gt;
&lt;br /&gt;
=== Saving ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-s}} : saves the current buffer&lt;br /&gt;
; {{Keys|C-x C-w}} ''filename'' : saves the current buffer as ''filename''&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-c}} : quits emacs&lt;br /&gt;
; {{Keys|C-g C-g}} : cancels key-sequence&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows are used to display buffer contents. Windows can be split and resized inside an Emacs frame. The minibuffer has its own window.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x 2}} : open a window vertically&lt;br /&gt;
; {{Keys|C-x 3}} : open a window horizontally&lt;br /&gt;
; {{Keys|C-x 0}} : close the current window&lt;br /&gt;
; {{Keys|C-x 1}} : close all other windows&lt;br /&gt;
; ESC ESC ESC : close all other windows&lt;br /&gt;
; {{Keys|C-x o}} : move to another window&lt;br /&gt;
; {{Keys|C-x ^}} : increase window size vertically&lt;br /&gt;
; {{Keys|C-x } }} : increase window size horizontally&lt;br /&gt;
; {{Keys|C-x {}} : decrease window size horizontally&lt;br /&gt;
; {{Keys|C-x -}} : shrink window to buffer size&lt;br /&gt;
; {{Keys|C-x +}} : make all windows equal in size&lt;br /&gt;
&lt;br /&gt;
== Navigation and Movement ==&lt;br /&gt;
&lt;br /&gt;
=== Word ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-&amp;amp;larr;}} : moves one word backwards&lt;br /&gt;
; {{Keys|C-&amp;amp;rarr;}} : moves one word forward&lt;br /&gt;
&lt;br /&gt;
=== Line ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-a}} : goes to beginning of the line (Home)&lt;br /&gt;
; {{Keys|C-e}} : goes to end of the line (End)&lt;br /&gt;
; {{Keys|M-a}} : goes to beginning of the sentence&lt;br /&gt;
; {{Keys|M-e}} : goes to end of the sentence&lt;br /&gt;
; {{Keys|M-g g}} : goes to given line by number&lt;br /&gt;
; {{Keys|M-m}} : moves point to the first non-whitespace character in this line&lt;br /&gt;
&lt;br /&gt;
=== Paragraph ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-&amp;amp;uarr;}} : moves up one paragraph&lt;br /&gt;
; {{Keys|C-&amp;amp;darr;}} : moves down one paragraph&lt;br /&gt;
&lt;br /&gt;
=== Window ===&lt;br /&gt;
; {{Keys|M-0 M-r}} : moves to the top of window&lt;br /&gt;
; {{Keys|M-r}} : moves to the middle of window&lt;br /&gt;
; {{Keys|M-- M-r}} : moves to the bottom of window&lt;br /&gt;
&lt;br /&gt;
=== Buffer ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x [}} : moves to the beginning of the buffer&lt;br /&gt;
; {{Keys|C-x ]}} : moves to the end of the buffer&lt;br /&gt;
; {{Keys|C-l}} : moves the buffer to position point&lt;br /&gt;
; {{Keys|C-x b}} : switches to another buffer by name&lt;br /&gt;
; {{Keys|C-x}} : switches to previous or next buffer&lt;br /&gt;
; {{Keys|C-x k}} : kills the current buffer&lt;br /&gt;
&lt;br /&gt;
== Editing ==&lt;br /&gt;
&lt;br /&gt;
=== Character ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-d}} : deletes next character&lt;br /&gt;
; {{Keys|C-t}} : transposes current character with previous one&lt;br /&gt;
; {{Keys|C-q TAB}} : inserts a TAB verbatim&lt;br /&gt;
&lt;br /&gt;
=== Word ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-d}}         : kills the next word&lt;br /&gt;
; {{Keys|M-- M-d}}     : kills to the previous word&lt;br /&gt;
; {{Keys|M-/}}         : expands current word&lt;br /&gt;
; {{Keys|M-/ SPC M-/}} : expands current word and grabs next one&lt;br /&gt;
; {{Keys|M-C-/}}       : completes current word&lt;br /&gt;
; {{Keys|M-t}}         : transposes current word with next one&lt;br /&gt;
; {{Keys|M-- M-t}}     : transposes current word with previous one&lt;br /&gt;
; {{Keys|M-c}}         : capitalizes next word&lt;br /&gt;
; {{Keys|M-- M-c}}     : capitalizes previous word&lt;br /&gt;
; {{Keys|M-l}}         : lowercase next word&lt;br /&gt;
; {{Keys|M-- M-l}}     : lowercase previous word&lt;br /&gt;
; {{Keys|M-u}}         : uppercase next word&lt;br /&gt;
; {{Keys|M-- M-u}}     : uppercase previous word&lt;br /&gt;
&lt;br /&gt;
=== Line ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-o M-s}} : center a line&lt;br /&gt;
; {{Keys|C-S-BACKSPC}} : kills current line&lt;br /&gt;
; {{Keys|C-k}} : kills from point to EOL&lt;br /&gt;
; {{Keys|M-u C-k}} : kills to the previous line&lt;br /&gt;
; {{Keys|C-a C-k}} : goes to BOL then kills to EOL&lt;br /&gt;
; {{Keys|TAB}} : indents line depending on current mode&lt;br /&gt;
; {{Keys|C-o}} : breaks line before/after point&lt;br /&gt;
; {{Keys|C-x C-t}} : transpose current line with previous one&lt;br /&gt;
; {{Keys|M-0 C-x}} C-t : transpose current line with one at mark&lt;br /&gt;
; delete-matching-lines : delete lines matching a regexp&lt;br /&gt;
&lt;br /&gt;
== Prefix Arguments and Command Repetition ==&lt;br /&gt;
&lt;br /&gt;
Passing numerical arguments to commands can alter their behavior (e.g., repetition or inversion). Passing an argument can be done before M-x or key bindings.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-''n'' ''com''}}   : run ''com'' with prefix arg ''n''&lt;br /&gt;
; {{Keys|M-- ''com''}}       : run ''com'' with negative prefix arg&lt;br /&gt;
; {{Keys|C-u ''n'' ''com''}} : run ''com'' with prefix arg ''n''&lt;br /&gt;
; {{Keys|C-u ''com''}}       : run ''com'' with prefix arg 4 (the default)&lt;br /&gt;
; {{Keys|C-u C-u ''com''}}   : run ''com'' with prefix arg 16 (four times the four times the default)&lt;br /&gt;
; {{Keys|C-u C-u ''com''}}   : run ''com'' with prefix arg 64 (four times the four times the four times the default)&lt;br /&gt;
; {{Keys|C-u}}               : also terminates the prefix argument&lt;br /&gt;
; {{Keys|C-x [z]+}}          : repeats the previous z''th'' command (including its args)&lt;br /&gt;
; {{Keys|C-x ESC ESC}}       : repeats last command that used the minibuffer&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u 5 0 C-k}} : will kill 50 lines&lt;br /&gt;
; {{Keys|C-u 5 C-u 0}} : will insert 5 zeros&lt;br /&gt;
&lt;br /&gt;
== Search and Replace ==&lt;br /&gt;
&lt;br /&gt;
=== Incremental search ===&lt;br /&gt;
&lt;br /&gt;
{{Details|Incremental Search}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-s keyword}} : search forward&lt;br /&gt;
; {{Keys|C-r keyword}} : search backward&lt;br /&gt;
&lt;br /&gt;
=== Non-incremental search ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-s RET keyword}} : search forward&lt;br /&gt;
; {{Keys|C-r RET keyword}} : search backward&lt;br /&gt;
&lt;br /&gt;
=== Regular Expression Search ===&lt;br /&gt;
&lt;br /&gt;
{{Details|Regexp Search}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-s expression}} : search regexp forward&lt;br /&gt;
; {{Keys|C-M-r expression}} : search regexp backward&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* '''ESC''' will cancel and go to original point. '''RET''' will end at the current point.&lt;br /&gt;
* Searches are case-insensitive unless an uppercase letter is found in the search string.&lt;br /&gt;
* While searching, {{Keys|C-w}} will increment the search term with the current word.&lt;br /&gt;
&lt;br /&gt;
=== Unconditional Replace ===&lt;br /&gt;
&lt;br /&gt;
; replace-string : replaces a string with another&lt;br /&gt;
; replace-regexp : replaces a regexp match with a string&lt;br /&gt;
&lt;br /&gt;
=== Query Replace (Conditional Replace) ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-%}} : conditional replacement of a string&lt;br /&gt;
; query-replace-regexp : conditional replacement of a regular expression&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Replaces are case-insensitive unless an uppercase letter is found in the match string.&lt;br /&gt;
* Replaces work from position to end of buffer unless a mark is active.&lt;br /&gt;
* After a replace, the position will be at the end of the last match. {{Keys|C-u C-SPC}} to go back to the position before the replace started.&lt;br /&gt;
* During a query replace, '''SPC''' will apply a replace and '''DEL''' will skip.&lt;br /&gt;
&lt;br /&gt;
== Undo and Redo ==&lt;br /&gt;
&lt;br /&gt;
In Emacs, there is no special redo function. Instead, there is only an undo function and redo can be achieved by ''undo-ing'' an undo.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-/}} : undo a single change&lt;br /&gt;
; {{Keys|C-g}} : break the chain of undos&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* If a mark is active, undo will only affect the marked region.&lt;br /&gt;
&lt;br /&gt;
== Regions ==&lt;br /&gt;
&lt;br /&gt;
Emacs uses the mark and point to denote a [[Region|region]] (i.e., a selection).&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-SPC}}       : creates a region (marks area)&lt;br /&gt;
; {{Keys|C-x C-x}}     : swaps mark and point in a region&lt;br /&gt;
; {{Keys|C-u C-x C-x}} : swaps mark and point without region&lt;br /&gt;
; {{Keys|C-x h}}       : marks the entire buffer&lt;br /&gt;
; {{Keys|M-h}}         : marks the paragraph around the point&lt;br /&gt;
; {{Keys|TAB}}         : indents the current region&lt;br /&gt;
; {{Keys|M-@}}         : incrementally mark next word&lt;br /&gt;
&lt;br /&gt;
=== Kill, Yank and Paste Regions ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-w}}                 : kills the currently selected region&lt;br /&gt;
; {{Keys|M-w}}                 : copies the currently selected region&lt;br /&gt;
; {{Keys|C-y}} ({{Keys|M-y}})* : yanks and cycles from the kill ring&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Yank is the copy command in vi and the paste command in emacs.&lt;br /&gt;
&lt;br /&gt;
== Rectangles ==&lt;br /&gt;
&lt;br /&gt;
[[Rectangles]] are marked regions between the columns of the point and the mark. Applying operations on rectangles is some sort of vertical editing.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x r k}} : kill the rectangle&lt;br /&gt;
; {{Keys|C-x r d}} : delete the rectangle&lt;br /&gt;
; {{Keys|C-x r y}} : yank the last killed rectangle&lt;br /&gt;
; {{Keys|C-x r o}} : push text to fill rectangle with spaces (open)&lt;br /&gt;
; {{Keys|C-x r c}} : replace rectangle text with spaces (clear)&lt;br /&gt;
; {{Keys|C-x r t}} : replace each line in rectangle with text&lt;br /&gt;
&lt;br /&gt;
== Registers ==&lt;br /&gt;
&lt;br /&gt;
[[Registers]] are places where you can store anything: text, position, rectangle, configuration, filename, etc... Registers are named with single character symbols: ''a'', ''A'' and ''3'' are three different registers.&lt;br /&gt;
&lt;br /&gt;
; view-register              : view the contents of a register&lt;br /&gt;
; {{Keys|C-x r SPC ''r''}}   : record current point position in register ''r''&lt;br /&gt;
; {{Keys|C-x r j ''r''}}     : jump to position in register ''r''&lt;br /&gt;
; {{Keys|C-x r s ''r''}}     : save region to register ''r''&lt;br /&gt;
; {{Keys|C-u C-x r s ''r''}} : kill region to register ''r''&lt;br /&gt;
; {{Keys|C-x r i ''r''}}     : insert text from register ''r''&lt;br /&gt;
; append-to-register         : append region to register&lt;br /&gt;
; prepend-to-register        : prepend region to register&lt;br /&gt;
; {{Keys|C-x r r ''r''}}     : save rectangle into register ''r''&lt;br /&gt;
&lt;br /&gt;
== Bookmarks ==&lt;br /&gt;
&lt;br /&gt;
[[Bookmarks]] are like registers but persistent. They can also be named.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x r m ''foo''}} : bookmark file and point to ''foo''&lt;br /&gt;
; {{Keys|C-x r b ''foo''}} : jump to bookmark called ''foo''&lt;br /&gt;
; {{Keys|C-x r l}}         : list all bookmarks&lt;br /&gt;
; bookmark-save            : save all bookmarks&lt;br /&gt;
; bookmark-delete          : delete a bookmark&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
&lt;br /&gt;
[[Keyboard macros]] are user defined commands using the Emacs command language. A user can ''record'' and ''replay'' a macro, useful for simple repeatable tasks. More complex tasks (e.g., conditions, loops) must be implemented in ''elisp''. Macros are recorded in a macro ring.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|F3}}           : start macro definition or insert counter&lt;br /&gt;
; {{Keys|C-x (}}        : start macro definition only&lt;br /&gt;
; {{Keys|F4}}           : end macro definition or call macro&lt;br /&gt;
; {{Keys|C-x e}}        : end macro definition and call macro&lt;br /&gt;
; {{Keys|C-x )}}        : end macro definition only&lt;br /&gt;
; {{Keys|C-u C-u F3}}   : append commands to last macro&lt;br /&gt;
; {{Keys|C-u F3}}       : re-run last macro then append commands to it&lt;br /&gt;
; {{Keys|C-x C-k r}}    : run macro on region&lt;br /&gt;
; {{Keys|C-x C-k C-n}}  : rotate to select the next macro in the ring&lt;br /&gt;
; {{Keys|C-x C-k C-p}}  : rotate to select the previous macro in the ring&lt;br /&gt;
&lt;br /&gt;
=== Macro Counters ===&lt;br /&gt;
&lt;br /&gt;
Every macro definition can have a counter to insert into the buffer.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|F3}}           : inside a macro definition, inserts the counter&lt;br /&gt;
; {{Keys|C-x C-k C-i}}  : outside a macro definition, inserts the counter&lt;br /&gt;
; {{Keys|C-x C-k C-c}}  : set the macro counter value&lt;br /&gt;
; {{Keys|C-x C-k C-f}}  : set the macro counter format&lt;br /&gt;
&lt;br /&gt;
=== Saving Macros ===&lt;br /&gt;
&lt;br /&gt;
Macros can be named and saved.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-k n}} : name the most recently defined macro&lt;br /&gt;
; {{Keys|C-x C-k b}} : keybind the most recently defined macro&lt;br /&gt;
; insert-kbd-macro   : insert macro into buffer as elisp code&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* It is best to use the reserved key bindings {{Keys|C-x C-k [a-zA-Z0-9]}} as to not cause problems with other bindings. {{Keys|C-x C-k b 4}} will define {{Keys|C-x C-k 4}} as a binding.&lt;br /&gt;
&lt;br /&gt;
== Alignment ==&lt;br /&gt;
&lt;br /&gt;
Emacs contains alignment commands. Sometimes those depend on the current mode (i.e., the language).&lt;br /&gt;
&lt;br /&gt;
; align                     : aligns depending on mode&lt;br /&gt;
; align-regexp              : aligns using a regular expression&lt;br /&gt;
; {{Keys|C-u align-regexp}} : aligns using a regular expression helper&lt;br /&gt;
; align-current             : aligns current paragraph depending on mode&lt;br /&gt;
&lt;br /&gt;
== Sorting ==&lt;br /&gt;
&lt;br /&gt;
When sorting, prefixing with {{Keys|C-u}} sorts in descending order.&lt;br /&gt;
&lt;br /&gt;
; sort-lines                      : sort region by lines&lt;br /&gt;
; sort-paragraphs                 : sort region by paragraphs&lt;br /&gt;
; {{Keys|C-u ''n'' sort-fields}}  : sort lines in region by n''th'' field&lt;br /&gt;
; {{Keys|C-u -''n'' sort-fields}} : sort lines in region by n''th'' field from right&lt;br /&gt;
; sort-numeric-fields             : interpret field as number and not text&lt;br /&gt;
; sort-columns                    : sort by column specified by marked region&lt;br /&gt;
; reverse-region                  : reverses current region&lt;br /&gt;
&lt;br /&gt;
== Tables ==&lt;br /&gt;
&lt;br /&gt;
Emacs has support for creating and editing text-based tables by keeping track of their properties (e.g., position, size) in the buffer. When a buffer is saved to file, those properties are lost.&lt;br /&gt;
&lt;br /&gt;
; table-insert             : interactively insert a table into buffer&lt;br /&gt;
; table-recognize          : detect properties of all tables in the buffer&lt;br /&gt;
; table-unrecognize        : remove special table properties&lt;br /&gt;
; table-recognize-region   : detect properties of tables in region&lt;br /&gt;
; table-unrecognize-region : forget properties of tables in region&lt;br /&gt;
; table-recognize-table    : detect properties of table at point&lt;br /&gt;
; table-unrecognize-table  : remove properties of table at point&lt;br /&gt;
&lt;br /&gt;
=== Cell resizing ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;gt;}} : widen cell at point by ''n'' characters&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;lt;}} : narrow cell at point by ''n'' characters&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;#65373;}} : heighten cell at point by ''n'' lines&lt;br /&gt;
; {{Keys|C-u ''n'' C-&amp;amp;#65371;}} : shorten cell at point by ''n'' lines&lt;br /&gt;
&lt;br /&gt;
=== Cell movement ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|TAB}}   : move to cell on right&lt;br /&gt;
; {{Keys|S-TAB}} : move to cell on left&lt;br /&gt;
&lt;br /&gt;
=== Cell merging and splitting ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-c C-c *}} : interactively merge two cells&lt;br /&gt;
; {{Keys|C-+}}        : split cell horizontally&lt;br /&gt;
; {{Keys|C--}}       : split cell vertically&lt;br /&gt;
&lt;br /&gt;
=== Rows and Columns ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-u ''n'' table-insert-row}}    : insert ''n'' rows&lt;br /&gt;
; {{Keys|C-u ''n'' table-delete-row}}    : delete ''n'' rows&lt;br /&gt;
; {{Keys|C-u ''n'' table-insert-column}} : insert ''n'' columns&lt;br /&gt;
; {{Keys|C-u ''n'' table-delete-column}} : delete ''n'' columns&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-:}}          : interactively justify cell, column or row text&lt;br /&gt;
; {{Keys|C-!}}          : toggle table fixed width mode&lt;br /&gt;
; table-generate-source : table code in Latex, HTML or Cals&lt;br /&gt;
&lt;br /&gt;
== Goodies ==&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x TAB}}      : force an indentation on a region&lt;br /&gt;
; {{Keys|M-q}}          : indents and breaks paragraph into multiple lines&lt;br /&gt;
; {{Keys|M-;}}          : comments a region or adds comment to line&lt;br /&gt;
; {{Keys|M-(}}          : inserts a new lisp function (parenthesis)&lt;br /&gt;
; {{Keys|M-)}}          : checks balanced parenthesis and opens line&lt;br /&gt;
; {{Keys|C-x i}}        : inserts file contents at point position&lt;br /&gt;
; {{Keys|M-!}}          : run shell command&lt;br /&gt;
; {{Keys|C-u M-!}}      : run shell command and insert output&lt;br /&gt;
; {{Keys|M-|}}          : run shell command on marked region&lt;br /&gt;
; {{Keys|C-u M-|}}      : run shell command on and replace marked region&lt;br /&gt;
; insert-buffer         : inserts buffer contents at point position&lt;br /&gt;
; copy-to-buffer        : copy region content to a buffer&lt;br /&gt;
; kill-some-buffers     : interactively kill buffers&lt;br /&gt;
; electric-buffer-list  : interactive buffer list&lt;br /&gt;
; toggle-truncate-lines : do not split lines over visual lines&lt;br /&gt;
; visual-line-mode      : split lines by words&lt;br /&gt;
; viper-mode            : vi compatibility mode&lt;br /&gt;
&lt;br /&gt;
== Setting Key Bindings ==&lt;br /&gt;
&lt;br /&gt;
{{Details|Key Bindings}}&lt;br /&gt;
&lt;br /&gt;
Emacs has a global keymap which maps between keys and commands. Each major mode can define, re-define or un-define its own key bindings, creating a local keymap (e.g., c-mode). Each minor mode can do so too (e.g., flymake). Each portion of text can also do so (e.g., tables).&lt;br /&gt;
&lt;br /&gt;
=== Some prefix keys ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x}} : command prefix key&lt;br /&gt;
; {{Keys|M-}}  : command prefix key&lt;br /&gt;
; {{Keys|C-c}} : mode specific prefix key&lt;br /&gt;
; {{Keys|C-h}} : help prefix key&lt;br /&gt;
&lt;br /&gt;
=== Commands to bind keys ===&lt;br /&gt;
&lt;br /&gt;
; global-set-key ''k'' ''com'' : bind key ''k'' to ''com'' globally&lt;br /&gt;
; local-set-key ''k'' ''com''  : bind key ''k'' to ''com'' locally (major mode)&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* Menu and mouse key bindings can also be set.&lt;br /&gt;
&lt;br /&gt;
== Storing Key Bindings ==&lt;br /&gt;
&lt;br /&gt;
In the Emacs ''init'' file, you can either set global key bindings or ''hook'' local key bindings to mode hooks (i.e., callbacks, slots).&lt;br /&gt;
&lt;br /&gt;
; global-set-key      : adds a binding to the global map&lt;br /&gt;
; local-set-key       : adds a binding to the local (major mode) map&lt;br /&gt;
; kbd                 : converts a string to a key sequence&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
==== Global key binding ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(global-set-key (kbd 'C-c d') 'duplicate-line)&lt;br /&gt;
(global-set-key (kbd 'C-c d') (kbd 'C-a C-@ C-e M-w RET C-y'))&lt;br /&gt;
(global-set-key (kbd 'C-c d') '\C-a\C- \C-n\M-w\C-y')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Local key binding ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-hook 'LaTeX-mode-hook (lambda () (local-set-key (kbd 'C-c n') 'forward-paragraph)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Emacs Help System ==&lt;br /&gt;
&lt;br /&gt;
Emacs has a handy help system for quick lookup of various features, topics, functions and key bindings.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-h ?}}       : show the help system shortcuts&lt;br /&gt;
; {{Keys|C-h ''key''}} : run help system with shortcut ''key''&lt;br /&gt;
&lt;br /&gt;
=== Some useful help keys ===&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-h a}}             : show apropos page about a keyword&lt;br /&gt;
; {{Keys|C-h k ''keybind''}} : show help for function bound to ''keybind''&lt;br /&gt;
; {{Keys|C-h b}}             : show all key bindings&lt;br /&gt;
; {{Keys|C-h f}}             : show documentation for function&lt;br /&gt;
; {{Keys|C-h m}}             : show documentation for current modes&lt;br /&gt;
; {{Keys|C-h v}}             : show documentation for variable&lt;br /&gt;
; {{Keys|C-h w}}             : show what keys a command is bound to&lt;br /&gt;
; {{Keys|C-h t}}             : start the emacs tutorial&lt;br /&gt;
; {{Keys|''prefix'' C-h}}    : show all key binds starting with ''prefix''&lt;br /&gt;
&lt;br /&gt;
== Modes ==&lt;br /&gt;
&lt;br /&gt;
Modes are used to define the type of data being edited in buffers, or what Emacs calls “the language”.&lt;br /&gt;
&lt;br /&gt;
Every buffer has exactly one [[Major mode|major mode]] which defines its language (C, Java, English, IRC, etc...) and provides basic elements like syntax highlighting and (re)defines functions and their key bindings for relevant actions (e.g., comments).&lt;br /&gt;
&lt;br /&gt;
Each buffer can have zero or more [[Minor mode|minor modes]] enabled which provide non-specific functionality such as spell checking or line wrapping (i.e., mode independent).&lt;br /&gt;
&lt;br /&gt;
== Mode: ediff ==&lt;br /&gt;
&lt;br /&gt;
ediff (emacs-diff) is a mode for Emacs where you can view and merge differences between two or three buffers.&lt;br /&gt;
&lt;br /&gt;
; ediff         : select files to view their differences&lt;br /&gt;
; ediff-buffers : select buffers to view their differences&lt;br /&gt;
&lt;br /&gt;
=== In ediff-mode ===&lt;br /&gt;
&lt;br /&gt;
; | : switch between horizontal/vertical view&lt;br /&gt;
; ? : view ediff help&lt;br /&gt;
; p : view previous difference&lt;br /&gt;
; n : view next difference&lt;br /&gt;
; a : set buffer b’s area to what’s in a’s&lt;br /&gt;
; b : set buffer a’s area to what’s in b’s&lt;br /&gt;
; q : quit ediff session&lt;br /&gt;
&lt;br /&gt;
== Mode: Spell Checking ==&lt;br /&gt;
&lt;br /&gt;
{{Details|Spell check}}&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-$}} : check spelling at word or active region&lt;br /&gt;
; ispell       : check active region or buffer, during which pressing '''i''' will accept the current word and insert it into the user's dictionary, pressing '''?''' will show help and pressing '''RET''' will end the current '''ispell''' session.&lt;br /&gt;
; {{Keys|ESC TAB}}    : complete current word from dictionary&lt;br /&gt;
; flyspell-mode       : enable “on the fly” spell checking&lt;br /&gt;
; flyspell-prog-mode  : spell check comments and strings (programming mode)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Emacs Wiki: http://emacswiki.org/&lt;br /&gt;
* Emacs Docs: https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html&lt;br /&gt;
* Emacs Help&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Details&amp;diff=2765</id>
		<title>Template:Details</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Details&amp;diff=2765"/>
		<updated>2012-04-20T20:02:33Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Template for detailed section links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''For more details on {{{2|this topic}}}, see [[{{{1}}}]].''&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Rectangles&amp;diff=2764</id>
		<title>Rectangles</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Rectangles&amp;diff=2764"/>
		<updated>2012-04-20T19:50:07Z</updated>

		<summary type="html">&lt;p&gt;Francesco: fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rectangle commands operate on rectangular areas of the text: all the characters between a certain pair of columns, in a certain range of lines. Emacs has commands to kill rectangles, yank killed rectangles, clear them out, fill them with blanks or text, or delete them. Rectangle commands are useful with text in multicolumn formats, and for changing text into or out of such formats.&lt;br /&gt;
&lt;br /&gt;
When you must specify a rectangle for a command to work on, you do it by putting the mark at one corner and point at the opposite corner. The rectangle thus specified is called the region-rectangle because you control it in much the same way as the region is controlled. But remember that a given combination of point and mark values can be interpreted either as a region or as a rectangle, depending on the command that uses them.&lt;br /&gt;
&lt;br /&gt;
If point and the mark are in the same column, the rectangle they delimit is empty. If they are in the same line, the rectangle is one line high. This asymmetry between lines and columns comes about because point (and likewise the mark) is between two columns, but within a line.&lt;br /&gt;
&lt;br /&gt;
== Command of rectangles ==&lt;br /&gt;
&lt;br /&gt;
* {{Keys|C-x r k}} or {{Command|kill-rectangle}}&lt;br /&gt;
Kill the text of the region-rectangle, saving its contents as the “last killed rectangle”.&lt;br /&gt;
* {{Keys|C-x r d}} or {{Command|delete-rectangle}}&lt;br /&gt;
Delete the text of the region-rectangle.&lt;br /&gt;
* {{Keys|C-x r y}} or {{Command|yank-rectangle}}&lt;br /&gt;
Yank the last killed rectangle with its upper left corner at point.&lt;br /&gt;
* {{Keys|C-x r o}} or {{Command|open-rectangle}}&lt;br /&gt;
Insert blank space to fill the space of the region-rectangle. This pushes the previous contents of the region-rectangle rightward. &lt;br /&gt;
* {{Keys|C-x r c}} or {{Command|clear-rectangle}}&lt;br /&gt;
Clear the region-rectangle by replacing all of its contents with spaces.&lt;br /&gt;
* {{Command|delete-whitespace-rectangle}}&lt;br /&gt;
Delete whitespace in each of the lines on the specified rectangle, starting from the left edge column of the rectangle. &lt;br /&gt;
* {{Keys|C-x r t string RET}} or {{Command|string-rectangle}}&lt;br /&gt;
Replace rectangle contents with string on each line.&lt;br /&gt;
* {{Command|string-insert-rectangle RET string RET}}&lt;br /&gt;
Insert string on each line of the rectangle.&lt;br /&gt;
&lt;br /&gt;
[[Category:Text Editing]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:NewPage&amp;diff=2588</id>
		<title>Template:NewPage</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:NewPage&amp;diff=2588"/>
		<updated>2012-04-05T16:05:00Z</updated>

		<summary type="html">&lt;p&gt;Francesco: mention of builtin/3rd party categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''{{{1}}}''' is a wonderful mode which does wonderful things.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-----DONT REMOVE ANYTHING FROM THIS TEMPLATE ------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!-----YOU CAN DELETE STUFF THAT ARE USELESS IN THE FINAL PAGE YOU ARE WRITING -------&amp;gt;&lt;br /&gt;
&amp;lt;!-----FEW MONTHS, YEARS FROM 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;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
&lt;br /&gt;
Install these third party libraries or read this section before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-c}}&lt;br /&gt;
: Quit Emacs.&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|C-x C-s|save-buffer}}&lt;br /&gt;
: Save buffer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;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;
=== Customization 1 ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(message &amp;quot;This stuff will go in your .emacs&amp;quot;)&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;
Emacs-23 is not as great as Emacs-24. You will have these problems and you can workaround it this way.&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;
* [[Internal Link1]]&lt;br /&gt;
* [[Internal Link2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* [http://bazaar.canonical.com/en/ Bazaar]&lt;br /&gt;
* [http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html Bzr Users Guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
;[http://wiki.bazaar.canonical.com/EmacsTips Emacs as commit message editor]  &lt;br /&gt;
:Tips for setting up Emacs as Bazaar commit editor.&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), work flow (text editing, document authoring etc) or package type (built-in or third party) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:TestCategory1]][[Category:TestCategory2]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- When copying this template, ignore everything below here! --&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Expand_region&amp;diff=2574</id>
		<title>Expand region</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Expand_region&amp;diff=2574"/>
		<updated>2012-04-05T15:27:41Z</updated>

		<summary type="html">&lt;p&gt;Francesco: not part of emacs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=expand-region&lt;br /&gt;
|description=Emacs extension to increase selected region by semantic units.&lt;br /&gt;
|author=Magnar Sveen&lt;br /&gt;
|maintainer=Magnar Sveen&lt;br /&gt;
|source=https://github.com/magnars/expand-region.el&lt;br /&gt;
|in_emacs=No&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Expand region''' increases the selected region by semantic units. Just keep pressing the key until it selects what you want.&lt;br /&gt;
&lt;br /&gt;
An example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(setq alphabet-start &amp;quot;abc def&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the cursor at the '''c''', it starts by marking the entire word '''abc''', then expand to the contents of the quotes '''abc def''', then to the entire quote '''&amp;quot;abc def&amp;quot;''', then to the contents of the sexp '''setq alphabet-start &amp;quot;abc def&amp;quot;''' and finally to the entire sexp.&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;
(require 'expand-region)&lt;br /&gt;
(global-set-key (kbd &amp;quot;C-=&amp;quot;) 'er/expand-region)&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;
=== Replacing the Region ===&lt;br /&gt;
&lt;br /&gt;
{{Command|delete-selection-mode}} is sometimes used in conjunction with [[Expand region]]. [[Delete selection]] is a [[minor mode]] that allows you to delete and replace the contents of the current region by simply typing over it.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/magnars/expand-region GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
*[http://emacsrocks.com/e09.html Screencast]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project Management]][[Category:Convenience]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Category_talk:Native_Package&amp;diff=2568</id>
		<title>Category talk:Native Package</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Category_talk:Native_Package&amp;diff=2568"/>
		<updated>2012-04-05T14:32:57Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Native vs Builtin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Itsn't Built-in package a better term than native? I've never heard anyone using the term native for packages coming with Emacs, but I've seen built-in used a lot (even by package.el) [[User:Bozhidar|Bozhidar]]&lt;br /&gt;
:+1! Is there any mechanism to rename a category? [[User:GregLucas|GregLucas]] 17:25, 5 April 2012 (EEST)&lt;br /&gt;
&lt;br /&gt;
: may be &amp;quot;built-in&amp;quot; is  better. I don't have any idea on this, I was just adding that since it was there before. -- [[User:Kindahero|Kindahero]] 17:30, 5 April 2012 (EEST)&lt;br /&gt;
&lt;br /&gt;
: I also think &amp;quot;built-in&amp;quot; is the most widely used terminology. [[User:Francesco|Francesco]] 17:32, 5 April 2012 (EEST)&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Woman&amp;diff=2566</id>
		<title>Woman</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Woman&amp;diff=2566"/>
		<updated>2012-04-05T14:29:01Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Created page with &amp;quot;{{Package |name=WoMan |description=Man page lookup integration into Emacs |author=F. J. Wright |maintainer= |source=http://centaur.maths.qmw.ac.uk/Emacs/WoMan/ |in_emacs=yes, ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=WoMan&lt;br /&gt;
|description=Man page lookup integration into Emacs&lt;br /&gt;
|author=F. J. Wright&lt;br /&gt;
|maintainer=&lt;br /&gt;
|source=http://centaur.maths.qmw.ac.uk/Emacs/WoMan/&lt;br /&gt;
|in_emacs=yes, since Emacs 21&lt;br /&gt;
}}&lt;br /&gt;
'''Woman''' ('''W'''ith'''O'''ut '''Man''') is a program to browse Unix manual pages without calling the external &amp;lt;tt&amp;gt;man&amp;lt;/tt&amp;gt; utility. This presents both advantages and disadvantages over the classical [[man]] package, which uses the external &amp;lt;tt&amp;gt;man&amp;lt;/tt&amp;gt; tool to format manpages:&lt;br /&gt;
&lt;br /&gt;
* ''[advantage]'' it is entirely integrated in Emacs and does not require external dependencies (which is useful on non-UNIX platforms where these dependencies might not be installed);&lt;br /&gt;
* ''[disadvantage]'' it does not provide a complete support of the &amp;lt;tt&amp;gt;roff&amp;lt;/tt&amp;gt; language; complex manpages might not be fully rendered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basic usage ==&lt;br /&gt;
&lt;br /&gt;
WoMan is integrated in Emacs should work out of the box. Simply type e.g. {{Command|woman RET bash RET}} to see the &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; manual page. If the topic name you enter is available in multiple sections, you'll have to choose the correct one interactively afterwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
Manpages are presented using a [[major mode]] essentially similar to [[man]], with the same key bindings:&lt;br /&gt;
&lt;br /&gt;
; {{Keys|g}}&lt;br /&gt;
: Jump to a specific section within the manpage.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|n}} and {{Keys|p}}&lt;br /&gt;
: Jump to the next/previous manpage section.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|m}} or {{Keys|w}}&lt;br /&gt;
: Open another manpage.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|q}} and {{Keys|k}}&lt;br /&gt;
: Quit the manpage, and bury/kill the buffer.&lt;br /&gt;
&lt;br /&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;
* [[man]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* [http://centaur.maths.qmw.ac.uk/Emacs/WoMan/ WoMan web pages]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External documentation ==&lt;br /&gt;
* {{Manual|woman|Introduction|Introduction}}&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;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=User:Francesco&amp;diff=2527</id>
		<title>User:Francesco</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=User:Francesco&amp;diff=2527"/>
		<updated>2012-04-05T06:50:47Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use emacs on a daily basis, mostly for&lt;br /&gt;
* software development (C++, Python)&lt;br /&gt;
* document authoring (LaTeX)&lt;br /&gt;
* organizing my work (org)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [[WikEmacs:Guidelines]]&lt;br /&gt;
* [[:Category:Templates]]&lt;br /&gt;
* [[Special:Categories]]&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs Contributor]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Man&amp;diff=2526</id>
		<title>Man</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Man&amp;diff=2526"/>
		<updated>2012-04-05T06:45:56Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Created page with &amp;quot;{{Package |name=man |description=Man page lookup integration into Emacs |author= |maintainer= |source= |in_emacs=yes }}   {{Command|man}} allows you to browse the manual pages...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=man&lt;br /&gt;
|description=Man page lookup integration into Emacs&lt;br /&gt;
|author=&lt;br /&gt;
|maintainer=&lt;br /&gt;
|source=&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Command|man}} allows you to browse the manual pages installed on your system. It uses the external &amp;lt;tt&amp;gt;man&amp;lt;/tt&amp;gt; tool to format the page and present it to you in a {{Buffer|*Man topic*}} buffer using a specific major mode facilitating navigation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Basic usage ==&lt;br /&gt;
&lt;br /&gt;
Man is part of Emacs and should work out of the box. You just need to enter the name of the man page: {{Command|man RET bash RET}}. To read a man page from a specific section, you can specify it by wrapping it in parentheses after the topic name: {{Command|man RET chmod(2) RET}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
; {{Keys|g}}&lt;br /&gt;
: Jump to a specific section within the manpage.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|n}} and {{Keys|p}}&lt;br /&gt;
: Jump to the next/previous manpage section.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|m}}&lt;br /&gt;
: Open another manpage.&lt;br /&gt;
&lt;br /&gt;
; {{Keys|q}} and {{Keys|k}}&lt;br /&gt;
: quit the manpage, and bury/kill the buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Windows]] ==&lt;br /&gt;
&lt;br /&gt;
Since the external utility &amp;lt;tt&amp;gt;man&amp;lt;/tt&amp;gt; is generally not installed on MS Windows platforms, Windows users might prefer using [[woman]], which does not need any external tool.&lt;br /&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;
* [[woman]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External documentation ==&lt;br /&gt;
* {{Manual|emacs|Man-Page|Man Page Lookup}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Operating_System&amp;diff=2473</id>
		<title>Operating System</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Operating_System&amp;diff=2473"/>
		<updated>2012-04-04T07:36:10Z</updated>

		<summary type="html">&lt;p&gt;Francesco: setup redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT: [[Category:Operating System]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=GNU/Linux&amp;diff=2472</id>
		<title>GNU/Linux</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=GNU/Linux&amp;diff=2472"/>
		<updated>2012-04-04T07:35:24Z</updated>

		<summary type="html">&lt;p&gt;Francesco: removed category OS since GNU/Linux already is a subcategory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNU/Linux is [[Unix]] like [[Operating System]]. &lt;br /&gt;
&lt;br /&gt;
For details about installing Emacs on GNU/linux, refer [[Installing Emacs on GNU/Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GNU/Linux]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Minor_mode&amp;diff=2471</id>
		<title>Minor mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Minor_mode&amp;diff=2471"/>
		<updated>2012-04-04T07:33:30Z</updated>

		<summary type="html">&lt;p&gt;Francesco: setup redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT: [[Emacs Terminology#Minor mode]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Vc&amp;diff=2470</id>
		<title>Vc</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Vc&amp;diff=2470"/>
		<updated>2012-04-04T07:31:53Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Helpful key bindings */ (see also diff-mode)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=vc&lt;br /&gt;
|description=Version control front end for emacs&lt;br /&gt;
|author= several authors&lt;br /&gt;
|maintainer=[[Andre Spiegel]]&lt;br /&gt;
|source=http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/vc/&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''vc''' is a [[Version Control]] minor mode. This minor mode is&lt;br /&gt;
automatically activated whenever a file is opened which is under any&lt;br /&gt;
revision control system. It supports many different version control&lt;br /&gt;
systems including [[git]], [[bazaar]], [[CVS]] and [[SVN]] etc. It&lt;br /&gt;
gives a unique interface to Emacs irrespective of back end  version control system in operation. &lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
No particular setup is needed for basic usage. Emacs checks for usage&lt;br /&gt;
of version control automatically when a file is being opened.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Helpful key bindings ==&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|C-x v +|vc-update}}&lt;br /&gt;
: Update the current fileset's files to their tip revisions.&lt;br /&gt;
; {{CommandKeys|C-x v &amp;amp;#61;|vc-diff}}&lt;br /&gt;
: Display diffs between file revisions in a buffer using [[diff-mode]].&lt;br /&gt;
; {{CommandKeys|C-x v g|vc-annotate}}&lt;br /&gt;
: Display the edit history of the current file.&lt;br /&gt;
&lt;br /&gt;
== Common customizations ==&lt;br /&gt;
&lt;br /&gt;
=== Automatically revert version-controlled buffers ===&lt;br /&gt;
Since version controlled files tend to be changed outside of Emacs, it might be useful to automatically activate [[auto-revert-mode]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Activate `auto-revert-mode' for version-controlled files&lt;br /&gt;
(defadvice vc-find-file-hook (after auto-revert-mode-for-vc activate)&lt;br /&gt;
  &amp;quot;vc-find-file-hook advice for activating `auto-revert-mode'&amp;quot;&lt;br /&gt;
  (when vc-mode (auto-revert-mode 1)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
:* [[Magit]]&lt;br /&gt;
:* [[diff]]&lt;br /&gt;
:* [[ediff]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Minor Mode]]&lt;br /&gt;
[[Category:Version Control]]&lt;br /&gt;
[[Category:Major Components of Emacs]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Vc&amp;diff=2467</id>
		<title>Vc</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Vc&amp;diff=2467"/>
		<updated>2012-04-04T07:12:06Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Helpful keybindings + Common customization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=vc&lt;br /&gt;
|description=Version control front end for emacs&lt;br /&gt;
|author= several authors&lt;br /&gt;
|maintainer=[[Andre Spiegel]]&lt;br /&gt;
|source=http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/vc/&lt;br /&gt;
|in_emacs=yes&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''vc''' is a [[Version Control]] minor mode. This minor mode is&lt;br /&gt;
automatically activated whenever a file is opened which is under any&lt;br /&gt;
revision control system. It supports many different version control&lt;br /&gt;
systems including [[git]], [[bazaar]], [[CVS]] and [[SVN]] etc. It&lt;br /&gt;
gives a unique interface to Emacs irrespective of back end  version control system in operation. &lt;br /&gt;
&lt;br /&gt;
== Basic setup ==&lt;br /&gt;
No particular setup is needed for basic usage. Emacs checks for usage&lt;br /&gt;
of version control automatically when a file is being opened.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Helpful key bindings ==&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|C-x v +|vc-update}}&lt;br /&gt;
: Update the current fileset's files to their tip revisions.&lt;br /&gt;
; {{CommandKeys|C-x v &amp;amp;#61;|vc-diff}}&lt;br /&gt;
: Display diffs between file revisions.&lt;br /&gt;
; {{CommandKeys|C-x v g|vc-annotate}}&lt;br /&gt;
: Display the edit history of the current file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common customizations ==&lt;br /&gt;
&lt;br /&gt;
=== Automatically revert version-controlled buffers ===&lt;br /&gt;
Since version controlled files tend to be changed outside of Emacs, it might be useful to automatically activate [[auto-revert-mode]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Activate `auto-revert-mode' for version-controlled files&lt;br /&gt;
(defadvice vc-find-file-hook (after auto-revert-mode-for-vc activate)&lt;br /&gt;
  &amp;quot;vc-find-file-hook advice for activating `auto-revert-mode'&amp;quot;&lt;br /&gt;
  (when vc-mode (auto-revert-mode 1)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
:* [[Magit]]&lt;br /&gt;
:* [[diff]]&lt;br /&gt;
:* [[ediff]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Minor Mode]]&lt;br /&gt;
[[Category:Version Control]]&lt;br /&gt;
[[Category:Major Components of Emacs]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Emacs_Lisp&amp;diff=2466</id>
		<title>Emacs Lisp</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Emacs_Lisp&amp;diff=2466"/>
		<updated>2012-04-04T06:47:29Z</updated>

		<summary type="html">&lt;p&gt;Francesco: fixed keys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox major-mode&lt;br /&gt;
|title = Emacs Lisp&lt;br /&gt;
|library = lisp-mode&lt;br /&gt;
|command = emacs-lisp-mode&lt;br /&gt;
|builtin = yes&lt;br /&gt;
|auto activates = *.el, .emacs, _emacs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Emacs Lisp''' is a dialect of the [[Lisp]] programming language used by GNU Emacs. Most of the editing functionality built into Emacs is written in Emacs Lisp, with the remainder being written in C (as is the Lisp interpreter itself). Users of Emacs commonly write Emacs Lisp code to customize and extend Emacs.&lt;br /&gt;
&lt;br /&gt;
Emacs Lisp is also commonly referred to as &amp;quot;elisp&amp;quot; or &amp;quot;Elisp&amp;quot;. Files containing Emacs Lisp code use the &amp;lt;tt&amp;gt;.el&amp;lt;/tt&amp;gt; filename suffix; when [[byte-compile]]d, the same filename prefix is used but with the &amp;lt;tt&amp;gt;.elc&amp;lt;/tt&amp;gt; filename suffix.&lt;br /&gt;
&lt;br /&gt;
Emacs Lisp is a [https://hornbeck.wordpress.com/2009/07/05/lisp-1-vs-lisp-2/ Lisp-2], which means that a single identifier (in Lisp terminology, &amp;quot;symbol&amp;quot;) can simultaneously exist as (&amp;quot;be bound to&amp;quot;) both a function and a variable.&lt;br /&gt;
&lt;br /&gt;
= Basic setup =&lt;br /&gt;
&lt;br /&gt;
You can customize the way Emacs edits and displays this and all other [[:Category:Lisp|lisp languages]] with  {{CustomizeGroup|lisp}}.&lt;br /&gt;
&lt;br /&gt;
= Helpful keybindings =&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-TAB}}&lt;br /&gt;
: Complete at point&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-q}}&lt;br /&gt;
: Indent the [[S-expression]] following [[point and mark|point]]&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-x}}&lt;br /&gt;
: Evaluate the &amp;lt;code&amp;gt;defun&amp;lt;/code&amp;gt; at [[point and mark|point]]&lt;br /&gt;
&lt;br /&gt;
= Common customizations =&lt;br /&gt;
&lt;br /&gt;
== Outlining ==&lt;br /&gt;
&lt;br /&gt;
For [[Org]]-style outlining, add the following snippet to your {{EmacsConfigFile}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Turn on outline minor mode&lt;br /&gt;
(add-hook 'emacs-lisp-mode-hook  'outline-minor-mode)&lt;br /&gt;
&lt;br /&gt;
;; Add key bindings for Org-style outline cycling&lt;br /&gt;
(add-hook 'outline-minor-mode-hook&lt;br /&gt;
  (lambda ()&lt;br /&gt;
    (define-key outline-minor-mode-map [(control tab)] 'org-cycle)&lt;br /&gt;
    (define-key outline-minor-mode-map [(shift tab)] 'org-global-cycle)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now visit any elisp file (say {{Command|find-library RET outline}}) and keep pressing {{Keys|S-TAB}} and see what happens.  Experiment similarly with {{Keys|C-TAB}}.&lt;br /&gt;
&lt;br /&gt;
== Indentation ==&lt;br /&gt;
&lt;br /&gt;
Add the following snippet to your {{EmacsConfigFile}}, so that you don't have to indent deliberately. See {{Command|reindent-then-newline-and-indent}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-hook 'emacs-lisp-mode-hook&lt;br /&gt;
	  (lambda nil&lt;br /&gt;
	    (local-set-key [(return)] 'reindent-then-newline-and-indent)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Always keep parentheses balanced ==&lt;br /&gt;
&lt;br /&gt;
See [[Skeleton#Keep some chars always balanced]]&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
By default elisp uses [[dynamic scope]]. Since Emacs 24 [[lexical scope]] has been added. &amp;lt;br/&amp;gt;&lt;br /&gt;
To use lexical binding, an Emacs-lisp source file must set a file-variable {{Variable|lexical-binding}} to &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; in the file header, e.g., by using a first line like: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    ;;; -*- lexical-binding: t -*-&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/emacs/manual/html_node/elisp/index.html Emacs Lisp manual]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lisp]]&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Programming languages]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=TRAMP&amp;diff=2235</id>
		<title>TRAMP</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=TRAMP&amp;diff=2235"/>
		<updated>2012-04-02T06:36:47Z</updated>

		<summary type="html">&lt;p&gt;Francesco: completed infobox information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=TRAMP&lt;br /&gt;
|description=Edit files on remote systems&lt;br /&gt;
|source=http://savannah.gnu.org/projects/tramp&lt;br /&gt;
|in_emacs=yes, since Emacs 22&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Emacs' TRAMP feature (Transparent Remote file Access, Multiple Protocol) is an extremely powerful tool for editing files that exist on remote systems, or require access using a different user account from your main Emacs session, or both.&lt;br /&gt;
&lt;br /&gt;
Some of the things that TRAMP can do include:&lt;br /&gt;
&lt;br /&gt;
* Editing files on a remote development server over SSH (e.g. &amp;lt;tt&amp;gt;/ssh:remote-user@remote.box:/path/to/my/file&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* Editing files on your local machine as root via sudo (e.g. &amp;lt;tt&amp;gt;/sudo::/etc/some/config/file&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* Editing files on a remote server as root via sudo over an SSH connection from another remote machine that exists within a DMZ (requires some configuration, see below)&lt;br /&gt;
&lt;br /&gt;
TRAMP is included with Emacs and described in the manual.&lt;br /&gt;
&lt;br /&gt;
== Multiple hops ==&lt;br /&gt;
&lt;br /&gt;
To set up multiple hop connections you will need to do a little bit of configuration.&lt;br /&gt;
&lt;br /&gt;
As an example, let's assume that you want to edit a file located at &amp;lt;tt&amp;gt;/etc/httpd/conf/httpd.conf&amp;lt;/tt&amp;gt; as root on a remote server at dev.example.com. You have a regular user account &amp;lt;tt&amp;gt;chris&amp;lt;/tt&amp;gt; on the development sever, but you need to use sudo to gain root access before editing the file.&lt;br /&gt;
&lt;br /&gt;
Put the following into your configuration files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Guard to ensure that TRAMP is available&lt;br /&gt;
(if (locate-library &amp;quot;tramp&amp;quot;)&lt;br /&gt;
    (eval-after-load &amp;quot;tramp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      ;; The actual TRAMP configuration&lt;br /&gt;
      '(add-to-list 'tramp-default-proxies-alist&lt;br /&gt;
                    '(&amp;quot;\\`dev\\.example\\.com\\'&amp;quot;&lt;br /&gt;
                      &amp;quot;\\`chris\\'&amp;quot;&lt;br /&gt;
                      &amp;quot;/ssh:%h:&amp;quot;))))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this is evaluated, Emacs knows that the hostname dev.example.com must be accessed over SSH by a user called chris.&lt;br /&gt;
&lt;br /&gt;
If you now try to find &amp;lt;tt&amp;gt;/sudo:dev.example.com:/etc/httpd/conf/httpd.conf&amp;lt;/tt&amp;gt; Emacs will automatically create the SSH connection first, prompting you for your password if necessary. Then it will prompt you for your sudo password. Once this is all done you will be able to modify the buffer as necessary. Saving the buffer will do what you expect: it will update the file on the remote server.&lt;br /&gt;
&lt;br /&gt;
It is also possible to configure partial domains, for instance in case you need an SSH connection before modifying anything on &amp;lt;tt&amp;gt;*.example.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Hops can be chained, making this feature extremely powerful.&lt;br /&gt;
&lt;br /&gt;
== A note for Windows users ==&lt;br /&gt;
&lt;br /&gt;
TRAMP uses programs that are usually included with GNU/Linux systems under the hood. These are not usually available on a Windows system.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;plink&amp;lt;/tt&amp;gt; method built into TRAMP can be used as a mostly drop-in replacement for SSH connections. It uses &amp;lt;tt&amp;gt;plink.exe&amp;lt;/tt&amp;gt; from the [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY suite of tools], which must be installed separately.&lt;br /&gt;
&lt;br /&gt;
[[Category:Remote Edit]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=MuMaMo&amp;diff=2220</id>
		<title>MuMaMo</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=MuMaMo&amp;diff=2220"/>
		<updated>2012-04-01T21:21:26Z</updated>

		<summary type="html">&lt;p&gt;Francesco: setup redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT: [[NXhtml]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Major_Mode&amp;diff=2219</id>
		<title>Major Mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Major_Mode&amp;diff=2219"/>
		<updated>2012-04-01T21:18:14Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Added mention of MuMaMo on the terminology page and setup redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT: [[Emacs Terminology#Major mode]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Emacs_Terminology&amp;diff=2218</id>
		<title>Emacs Terminology</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Emacs_Terminology&amp;diff=2218"/>
		<updated>2012-04-01T21:16:37Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Major mode */ added mention of MuMaMo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Buffer ==&lt;br /&gt;
&lt;br /&gt;
When you use {{Keys|C-x C-f}} to invoke command find-file, Emacs opens the file you request, and puts its contents into&lt;br /&gt;
a buffer with the same name as the file. Instead of thinking that you are editing a file, think that you are editing&lt;br /&gt;
text in a buffer. When you save the buffer, the file is updated to reflect your edits.&lt;br /&gt;
&lt;br /&gt;
Buffers can also contain text that doesn't come from a file.  When you use {{Keys|C-x C-b}} to get a list of buffers,&lt;br /&gt;
that list is itself in a buffer, called &amp;lt;tt&amp;gt;*Buffer List*&amp;lt;/tt&amp;gt;, and that buffer is not associated with any file.&lt;br /&gt;
&lt;br /&gt;
By convention, buffers whose names start with an asterisk ('''`*'''') are not associated with files (but that doesn't&lt;br /&gt;
mean you can't save them in files).  If they have unsaved changes when you exit Emacs, these buffers are killed without&lt;br /&gt;
your being asking for confirmation.&lt;br /&gt;
&lt;br /&gt;
Buffers whose names start with a space are [[InvisibleBuffers|invisible]] to many operations. These are generally&lt;br /&gt;
internal buffers that you don't want to see. Their names normally don't appear in the buffer list or as&lt;br /&gt;
[[Completion|completion]] candidates when you switch buffers using {{Keys|C-x b}}.&lt;br /&gt;
&lt;br /&gt;
Buffers are shown in [[#Window|windows]].  You can have more than one window showing the same buffer.  {{Keys|C-x 2}}&lt;br /&gt;
splits the current window, creating two windows, both showing the same buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read more about windows in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Buffers|Buffers}}&lt;br /&gt;
* {{Manual|emacs|Windows|Windows}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Window ==&lt;br /&gt;
&lt;br /&gt;
In Emacs terminology, a &amp;quot;window&amp;quot; is a container in which a [[#Buffer|buffer]] is displayed. This may be confusing at first; if so, think &amp;quot;pane&amp;quot; whenever you see &amp;quot;window&amp;quot; in an Emacs context until you get used to it.&lt;br /&gt;
&lt;br /&gt;
A new Emacs [[#Frame|frame]] contains one window. This window can be split in to multiple windows using:&lt;br /&gt;
* {{CommandKeys|C-x 2|split-window-below}} - Split the window horizontally to create two stacked windows&lt;br /&gt;
* {{CommandKeys|C-x 3|split-window-right}} - Split the window vertically to create two side-by-side windows&lt;br /&gt;
&lt;br /&gt;
You can use multiple windows to view different [[#Buffer|buffers]] (or different portions of the same [[#Buffer|buffer]]) at once.&lt;br /&gt;
&lt;br /&gt;
You can read more about windows in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Screen|Screen}}&lt;br /&gt;
* {{Manual|emacs|Windows|Windows}}&lt;br /&gt;
&lt;br /&gt;
== Frame ==&lt;br /&gt;
&lt;br /&gt;
In Emacs terminology, a &amp;quot;frame&amp;quot; is what most window managers (Windows, OSX, GNOME, KDE, etc.) would call a &amp;quot;window&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It will typically have a title bar and some buttons to iconify (minimize), maximize / restore, and close the frame. To&lt;br /&gt;
see an example, open up a second frame from your running Emacs instance with {{CommandKeys|C-x 5 2|make-frame-command}}. You can close frames with {{CommandKeys|C-x 5 0|delete-frame}}, though this&lt;br /&gt;
will not close the last frame that is open.&lt;br /&gt;
&lt;br /&gt;
To be completely correct, frames can be created when Emacs is running in terminal mode too, not just in a windowing system. They don't provide the same visual cues but otherwise work the same.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read more about frames in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Screen|Screen}}&lt;br /&gt;
* {{Manual|emacs|Frames|Frames}}&lt;br /&gt;
&lt;br /&gt;
== Point ==&lt;br /&gt;
&lt;br /&gt;
The active cursor shows the location at which editing commands will&lt;br /&gt;
take effect, which is called &amp;quot;point&amp;quot;.  Many Emacs commands move&lt;br /&gt;
point to different places in the buffer; for example, you can place&lt;br /&gt;
point by clicking mouse button 1 (normally the left button) at the&lt;br /&gt;
desired location.&lt;br /&gt;
&lt;br /&gt;
If you use a block cursor, the cursor appears to be on a&lt;br /&gt;
character, but you should think of point as between two characters;&lt;br /&gt;
it points before the character that appears under the cursor.  For&lt;br /&gt;
example, if your text looks like `frob' with the cursor over the `b',&lt;br /&gt;
then point is between the `o' and the `b'.  If you insert the character&lt;br /&gt;
`!' at that position, the result is `fro!b', with point between the `!'&lt;br /&gt;
and the `b'.  Thus, the cursor remains over the `b', as before.&lt;br /&gt;
&lt;br /&gt;
Sometimes people speak of &amp;quot;the cursor&amp;quot; when they mean &amp;quot;point,&amp;quot; or&lt;br /&gt;
speak of commands that move point as &amp;quot;cursor motion&amp;quot; commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read more about the point in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Point|Point}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The Mark and the Region ==&lt;br /&gt;
&lt;br /&gt;
Many Emacs commands operate on an arbitrary contiguous part of the&lt;br /&gt;
current buffer.  To specify the text for such a command to operate on,&lt;br /&gt;
you set &amp;quot;the mark&amp;quot; at one end of it, and move point to the other end.&lt;br /&gt;
The text between point and the mark is called &amp;quot;the region&amp;quot;.  The region&lt;br /&gt;
always extends between point and the mark, no matter which one comes&lt;br /&gt;
earlier in the text; each time you move point, the region changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read more about the mark and the region in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Mark|Mark}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Killing ==&lt;br /&gt;
&lt;br /&gt;
In Emacs, &amp;quot;killing&amp;quot; means erasing text and copying it into the &amp;quot;kill&lt;br /&gt;
ring&amp;quot;.  &amp;quot;Yanking&amp;quot; means bringing text from the kill ring back into the&lt;br /&gt;
buffer.  (Some applications use the terms &amp;quot;cutting&amp;quot; and &amp;quot;pasting&amp;quot; for&lt;br /&gt;
similar operations.)  The kill ring is so-named because it can be&lt;br /&gt;
visualized as a set of blocks of text arranged in a ring, which you can&lt;br /&gt;
access in cyclic order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read more about killing in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Killing|Killing}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Yanking ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Yanking&amp;quot; means reinserting text previously killed.  The usual way to&lt;br /&gt;
move or copy text is to kill it and then yank it elsewhere one or more&lt;br /&gt;
times.&lt;br /&gt;
&lt;br /&gt;
You can read more about Yanking in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Yanking|Yanking}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Faces ==&lt;br /&gt;
&lt;br /&gt;
Emacs can display text in several different styles, which are called faces. Each face can specify various face attributes, such as the font, height, weight and slant, the foreground and background color, and underlining or overlining. A face does not have to specify all of these attributes; often it inherits most of them from another face.&lt;br /&gt;
&lt;br /&gt;
On a text-only terminal, not all face attributes are meaningful. Some text-only terminals support inverse video, bold, and underline attributes; some support colors. Text-only terminals generally do not support changing the height, width or font.&lt;br /&gt;
&lt;br /&gt;
Most major modes assign faces to the text automatically through the work of Font Lock mode. See Font Lock, for more information about Font Lock mode and syntactic highlighting. You can print the current buffer with the highlighting that appears on your screen using the command {{Command|ps-print-buffer-with-faces}}. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read more about faces in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Faces|Faces}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Major mode ==&lt;br /&gt;
&lt;br /&gt;
Emacs can adapt its behaviour to the specific type of text edited in a buffer. The set of specific Emacs customizations for a particular type of text is called a &amp;quot;major mode&amp;quot;. Each buffer has exactly one major mode depending on its content type (but see [[MuMaMo]] for a way to relax this constraint).&lt;br /&gt;
&lt;br /&gt;
Major modes can change the meaning of some keys, define syntax highlighing or indentation rules, and install new key bindings (usually beginning with {{Keys|C-c}}) for mode-specific commands. Emacs ships with a wide range of major modes, falling into three main categories:&lt;br /&gt;
* support for text (e.g. [[:Category:Markup languages|markup languages]]),&lt;br /&gt;
* support for [[:Category:Programming languages|programming languages]],&lt;br /&gt;
* applications within emacs (e.g. [[dired]], [[gnus]], ...). Buffers using this last group of major modes are usually not associated to files, but rather serve as a user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can read more about major modes in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Major-Modes|Major Modes}}&lt;br /&gt;
&lt;br /&gt;
== Minor mode ==&lt;br /&gt;
&lt;br /&gt;
Minor modes are optional features that can be turned on and off. Minor modes can be enabled for specific buffers (''buffer-local'' modes) or all buffers (''global'' modes). &lt;br /&gt;
&lt;br /&gt;
Emacs provides lots of minor modes. Just a few examples:&lt;br /&gt;
&lt;br /&gt;
* [[Auto Fill]] mode to automatically [[#Fill]] text as you type.&lt;br /&gt;
* [[Flyspell]] mode to highlight spelling errors as you type.&lt;br /&gt;
* [[Visual Line]] mode to wrap long lines to fit the screen. (See [[#Screen Lines]])&lt;br /&gt;
* [[Transient Mark]] mode to highlight the current region.&lt;br /&gt;
&lt;br /&gt;
You can read more about minor modes in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Minor-Modes|Minor Modes}}&lt;br /&gt;
&lt;br /&gt;
== Fill ==&lt;br /&gt;
&lt;br /&gt;
In Emacs ''filling'' text means breaking it in to lines of a given maximum width. You can enable automatic filling with {{Command|auto-fill-mode}}, or fill a specific block of text using something like {{CommandKeys|M-q|fill-paragraph}}.&lt;br /&gt;
&lt;br /&gt;
Note that fill commands add hard line breaks to the text. This is different from what might be called &amp;quot;word wrap&amp;quot; (or &amp;quot;line wrap&amp;quot;) in other tools, where the text is wrapped at the edge of the current display and re-flowed if the window is resized. Emacs provides this sort of wrapping as well, see [[#Screen Lines]]&lt;br /&gt;
&lt;br /&gt;
You can read about the various ways to fill text in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Filling|Filling}}&lt;br /&gt;
&lt;br /&gt;
== Screen Lines ==&lt;br /&gt;
&lt;br /&gt;
Emacs provides several ways to deal with text lines that extend horizontally beyond the size of the current window. These are display features: they change the ''screen lines'' shown in the window without modifying the ''logical lines'' of the actual text. &lt;br /&gt;
&lt;br /&gt;
* By default, Emacs wraps a long line of text at the edge of the window and shows the remaining text in ''continuation lines''.&lt;br /&gt;
* [[Visual Line]] mode provides what is commonly called &amp;quot;word wrap&amp;quot;: long lines are wrapped at the edge of the window without breaking in the middle of a word. Try {{Command|visual-line-mode}}.&lt;br /&gt;
* ''Line truncation'' means that text beyond the edge of the display is simply not shown, i.e. the line is cut off. Try {{Command|toggle-truncate-lines}}.&lt;br /&gt;
&lt;br /&gt;
These display options can affect how some editing and movement commands work. Refer to the documentation for details. To reformat text with hard line breaks, see [[#Fill]]. &lt;br /&gt;
&lt;br /&gt;
You can read more about the various ways of visualizing long lines in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Continuation-Lines|Continuation Lines}}&lt;br /&gt;
* {{Manual|emacs|Visual-Line-Mode|Visual Line Mode}}&lt;br /&gt;
* {{Manual|emacs|Line-Truncation|Line Truncation}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== case-fold ==&lt;br /&gt;
&lt;br /&gt;
Case '''in'''sensitivity.&lt;br /&gt;
&lt;br /&gt;
== Narrow and widen ==&lt;br /&gt;
&lt;br /&gt;
Sometimes you want to work on just a portion of the current buffer and ignore the rest. Emacs provides commands to ''narrow'' the  display so that it only shows the text you are interested in. Text outside of the current ''restriction'' is hidden from view and inaccessible to editing commands. &lt;br /&gt;
&lt;br /&gt;
Use {{CommandKeys|C-x n n|narrow-to-region}} to narrow the display to the current region. Use {{CommandKeys|C-x n w|widen}} to ''widen'' the display, making the entire buffer accessible again. &lt;br /&gt;
&lt;br /&gt;
Note that narrowing can be confusing to new users, so the command &amp;lt;tt&amp;gt;narrow-to-region&amp;lt;/tt&amp;gt; is disabled by default. If you have not explicitly enabled this command before trying to use it, you will be prompted to do so.&lt;br /&gt;
&lt;br /&gt;
Narrowing can be considered an alternative to collapsing blocks of text (folding). Narrowing allows you to identify a block of text to edit, whereas folding allows you to identify a block of text to hide. Emacs has various ways to hide text (see [[#Selective Display]]). The key difference between hiding text and narrowing is that hidden text remains editable: you can still delete a block of text that has been collapsed from view. With a narrowing restriction, only the active text can be modified. &lt;br /&gt;
&lt;br /&gt;
You can read more about narrowing and other ways to hide text in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Narrowing|Narrowing}}&lt;br /&gt;
&lt;br /&gt;
== Selective Display ==&lt;br /&gt;
&lt;br /&gt;
Emacs provides a way to hide lines of text indented more than a given number of columns:&lt;br /&gt;
{{Command|set-selective-display}}, bound to {{Keys|C-x $}} by default. &lt;br /&gt;
&lt;br /&gt;
This can be useful to hide &amp;quot;details&amp;quot; and get an overview of a file that uses indentation in some meaningful way (like most programming langauges). Note that the hidden text remains editable; see [[#Narrowing]] for a safer way to edit a specific portion of a buffer.&lt;br /&gt;
&lt;br /&gt;
There are a variety of other ways to hide text in an Emacs buffer, such as [[Outline]] and [[Hideshow]] modes.&lt;br /&gt;
&lt;br /&gt;
You can read more about selective display in the Emacs manual:&lt;br /&gt;
* {{Manual|emacs|Selective-Display|Selective Display}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Beginner]]&lt;br /&gt;
&lt;br /&gt;
== font-lock ==&lt;br /&gt;
&lt;br /&gt;
Syntax highlighting.&lt;br /&gt;
&lt;br /&gt;
[[Category:Key Concepts]] [[Category:Emacs Terminology]] [[Category:Beginner]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Category:Major_modes&amp;diff=2217</id>
		<title>Category:Major modes</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Category:Major_modes&amp;diff=2217"/>
		<updated>2012-04-01T21:04:17Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Created page with &amp;quot;Here are major modes which will help you edit specific types of text.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are [[Major mode|major modes]] which will help you edit specific types of text.&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=2216</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=2216"/>
		<updated>2012-04-01T21:02:08Z</updated>

		<summary type="html">&lt;p&gt;Francesco: added auto-categorization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = {{#if:{{{auto activates|}}}|&amp;lt;tt&amp;gt;{{{auto activates}}}&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Major modes]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Generate a major-mode infobox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
will generate the infobox shown at the top right corner of this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emacs Wiki Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=2211</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=2211"/>
		<updated>2012-04-01T20:21:50Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = {{#if:{{{auto activates|}}}|&amp;lt;tt&amp;gt;{{{auto activates}}}&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Generate a major-mode infobox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
will generate the infobox shown at the top right corner of this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emacs Wiki Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=2210</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=2210"/>
		<updated>2012-04-01T20:21:13Z</updated>

		<summary type="html">&lt;p&gt;Francesco: made &amp;quot;auto activates&amp;quot; field optional&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = {{#if{{{auto activates|}}}|&amp;lt;tt&amp;gt;{{{auto activates}}}&amp;lt;/tt&amp;gt;}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Generate a major-mode infobox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
will generate the infobox shown at the top right corner of this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emacs Wiki Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Markdown&amp;diff=2209</id>
		<title>Markdown</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Markdown&amp;diff=2209"/>
		<updated>2012-04-01T20:17:27Z</updated>

		<summary type="html">&lt;p&gt;Francesco: added major-mode infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox major-mode&lt;br /&gt;
|title=Markdown&lt;br /&gt;
|library=markdown-mode&lt;br /&gt;
|command=markdown-mode&lt;br /&gt;
|builtin=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[http://jblevins.org/projects/markdown-mode/ Markdown Mode] provides a major mode for editing Markdown-formatted text files. &lt;br /&gt;
&lt;br /&gt;
This package is not currently part of the Emacs distribution. &lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;br /&gt;
&lt;br /&gt;
* [http://jblevins.org/projects/markdown-mode/ Markdown Mode Project]&lt;br /&gt;
* [http://jblevins.org/git/markdown-mode.git Source (git)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Markup languages]][[Category:Document authoring]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=User:Francesco&amp;diff=2208</id>
		<title>User:Francesco</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=User:Francesco&amp;diff=2208"/>
		<updated>2012-04-01T20:13:28Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use emacs on a daily basis, mostly for&lt;br /&gt;
* software development (C++, Python)&lt;br /&gt;
* document authoring (LaTeX)&lt;br /&gt;
* organizing my work (org)&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs Contributor]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Package&amp;diff=1650</id>
		<title>Template:Package</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Package&amp;diff=1650"/>
		<updated>2012-03-29T21:15:04Z</updated>

		<summary type="html">&lt;p&gt;Francesco: fixed bug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;!--Summary Infobox --&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
| title = {{{name|package name}}}&lt;br /&gt;
| label1  = Description&lt;br /&gt;
| data1   = {{{description|simple one line description}}}&lt;br /&gt;
| label2  = Maintainer&lt;br /&gt;
| data2   = {{{maintainer|name of maintainer}}}&lt;br /&gt;
| label3  = Source Code&lt;br /&gt;
| data3   = {{{source|'''no link provided'''}}}&lt;br /&gt;
| {{#if: {{{in_emacs|}}}||NULL}}label4  = Part of Emacs since&lt;br /&gt;
| {{#if: {{{in_emacs|}}}||NULL}}data4   = {{#if: {{{in_emacs|}}}|{{{in_emacs}}}}}&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
This template is used for adding a Emacs Packages to the wiki and formating a nice bit of boiler plate and auto-categorisation. Parameters include: &lt;br /&gt;
&lt;br /&gt;
* name - Name of package&lt;br /&gt;
* description - One line description&lt;br /&gt;
* maintainer - The maintainer&lt;br /&gt;
* source - Where the source code lives&lt;br /&gt;
* (optional) in_emacs - When the package was included in emacs&lt;br /&gt;
&lt;br /&gt;
{{Package&lt;br /&gt;
|name=edit-server.el&lt;br /&gt;
|description=Provide an edit server for Chrom(ium) browser extensions&lt;br /&gt;
|maintainer=Alex Bennée&lt;br /&gt;
|source=https://github.com/stsquad/emacs_chrome/blob/master/servers/edit-server.el&lt;br /&gt;
|category=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
By using this template to declare a package you automatically include the page in the [[:Category:Emacs Package|Emacs Package category]]&lt;br /&gt;
&lt;br /&gt;
The sample box shown here is defined using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Package&lt;br /&gt;
|name=edit-server.el&lt;br /&gt;
|description=Provide an edit server for Chrom(ium) browser extensions&lt;br /&gt;
|maintainer=Alex Bennée&lt;br /&gt;
|source=https://github.com/stsquad/emacs_chrome/blob/master/servers/edit-server.el&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Note: The sample above sets 'category' to empty just so this Template page doesn't get categorized. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- The pre block shows the correct usage, where the 'category' param is unset and so the default gets used. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Emacs_Lisp&amp;diff=1634</id>
		<title>Emacs Lisp</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Emacs_Lisp&amp;diff=1634"/>
		<updated>2012-03-29T19:41:54Z</updated>

		<summary type="html">&lt;p&gt;Francesco: added infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox major-mode&lt;br /&gt;
|title = Emacs Lisp&lt;br /&gt;
|library = lisp-mode&lt;br /&gt;
|command = emacs-lisp-mode&lt;br /&gt;
|builtin = yes&lt;br /&gt;
|auto activates = *.el, .emacs, _emacs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Emacs Lisp is a dialect of the [[Lisp]] programming language used by GNU Emacs. Most of the editing functionality built into Emacs is written in Emacs Lisp, with the remainder being written in C (as is the Lisp interpreter itself). Users of Emacs commonly write Emacs Lisp code to customize and extend Emacs.&lt;br /&gt;
&lt;br /&gt;
Emacs Lisp is also commonly referred to as &amp;quot;elisp&amp;quot; or &amp;quot;Elisp&amp;quot;. Files containing Emacs Lisp code use the &amp;lt;tt&amp;gt;.el&amp;lt;/tt&amp;gt; filename suffix; when [[byte-compile]]d, the same filename prefix is used but with the &amp;lt;tt&amp;gt;.elc&amp;lt;/tt&amp;gt; filename suffix.&lt;br /&gt;
&lt;br /&gt;
Emacs Lisp is a [https://hornbeck.wordpress.com/2009/07/05/lisp-1-vs-lisp-2/ Lisp-2], which means that a single identifier (in Lisp terminology, &amp;quot;symbol&amp;quot;) can simultaneously exist as (&amp;quot;be bound to&amp;quot;) both a function and a variable.&lt;br /&gt;
&lt;br /&gt;
= Basic setup =&lt;br /&gt;
&lt;br /&gt;
You can customize the way Emacs edits and displays this and all other [[:Category:Lisp|lisp languages]] with  {{CustomizeGroup|lisp}}.&lt;br /&gt;
&lt;br /&gt;
= Helpful keybindings =&lt;br /&gt;
&lt;br /&gt;
; {{Keys|M-&amp;lt;tab&amp;gt;}}&lt;br /&gt;
: Complete at point&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-M-q}}&lt;br /&gt;
: Indent the [[S-expression]] following [[point and mark|point]]&lt;br /&gt;
&lt;br /&gt;
;{{Keys|C-M-x}}&lt;br /&gt;
: Evaluate the &amp;lt;code&amp;gt;defun&amp;lt;/code&amp;gt; at [[point and mark|point]]&lt;br /&gt;
&lt;br /&gt;
= Common customizations =&lt;br /&gt;
&lt;br /&gt;
== Outlining ==&lt;br /&gt;
&lt;br /&gt;
For [[Org]]-style outlining, add the following snippet to your {{EmacsConfigFile}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Turn on outline minor mode&lt;br /&gt;
(add-hook 'emacs-lisp-mode-hook  'outline-minor-mode)&lt;br /&gt;
&lt;br /&gt;
;; Add key bindings for Org-style outline cycling&lt;br /&gt;
(add-hook 'outline-minor-mode-hook&lt;br /&gt;
  (lambda ()&lt;br /&gt;
    (define-key outline-minor-mode-map [(control tab)] 'org-cycle)&lt;br /&gt;
    (define-key outline-minor-mode-map [(shift tab)] 'org-global-cycle)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now visit any elisp file (say {{Command|find-library RET outline}}) and keep pressing {{Keys|S-TAB}} and see what happens.  Experiment similarly with {{Keys|C-TAB}}.&lt;br /&gt;
&lt;br /&gt;
== Indentation ==&lt;br /&gt;
&lt;br /&gt;
Add the following snippet to your {{EmacsConfigFile}}, so that you don't have to indent deliberately. See {{Command|reindent-then-newline-and-indent}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-hook 'emacs-lisp-mode-hook&lt;br /&gt;
	  (lambda nil&lt;br /&gt;
	    (local-set-key [(return)] 'reindent-then-newline-and-indent)))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Always keep parentheses balanced ==&lt;br /&gt;
&lt;br /&gt;
See [[Skeleton#Keep some chars always balanced]]&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
By default elisp uses [[dynamic scope]]. Since Emacs 24 [[lexical scope]] has been added. &amp;lt;br/&amp;gt;&lt;br /&gt;
To use lexical binding, an Emacs-lisp source file must set a file-variable {{Variable|lexical-binding}} to &amp;lt;tt&amp;gt;t&amp;lt;/tt&amp;gt; in the file header, e.g., by using a first line like: &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    ;;; -*- lexical-binding: t -*-&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnu.org/software/emacs/manual/html_node/elisp/index.html Emacs Lisp manual]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emacs User]][[Category:Emacs Contributor]][[Category:Intermediate]][[Category:Lisp]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1633</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1633"/>
		<updated>2012-03-29T19:33:44Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = &amp;lt;tt&amp;gt;{{{auto activates}}}&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Generate a major-mode infobox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
will generate the infobox shown at the top right corner of this page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1632</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1632"/>
		<updated>2012-03-29T19:32:40Z</updated>

		<summary type="html">&lt;p&gt;Francesco: documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = &amp;amp;nbsp;{{{auto activates}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Generate a major-mode infobox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
will generate the infobox shown at the top right corner of this page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1620</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1620"/>
		<updated>2012-03-29T19:06:53Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = &amp;amp;nbsp;{{{auto activates}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1619</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1619"/>
		<updated>2012-03-29T19:05:34Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = {{{auto activates}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = &amp;lt;pre&amp;gt;*.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1617</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1617"/>
		<updated>2012-03-29T19:03:03Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = &amp;lt;nowiki&amp;gt;{{{auto activates}}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1615</id>
		<title>Template:Infobox major-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Infobox_major-mode&amp;diff=1615"/>
		<updated>2012-03-29T19:01:47Z</updated>

		<summary type="html">&lt;p&gt;Francesco: Created page with &amp;quot;&amp;lt;includeonly&amp;gt; {{Infobox |bodystyle  = width:30em; |title      = {{{title}}}  |header1    =  |label1     = Library |data1      = {{{library}}} |header2    =  |label2     = Comm...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
|bodystyle  = width:30em;&lt;br /&gt;
|title      = {{{title}}}&lt;br /&gt;
&lt;br /&gt;
|header1    = &lt;br /&gt;
|label1     = Library&lt;br /&gt;
|data1      = {{{library}}}&lt;br /&gt;
|header2    = &lt;br /&gt;
|label2     = Command&lt;br /&gt;
|data2      = {{{command}}}&lt;br /&gt;
|header3    = &lt;br /&gt;
|label3     = Builtin&lt;br /&gt;
|data3      = {{{builtin}}}&lt;br /&gt;
|header4    =&lt;br /&gt;
|label4     = Auto-activates for&lt;br /&gt;
|data4      = {{{auto activates}}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&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 = *.ii, *.CC, *.HH, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.cc, *.hh&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=WikEmacs:Scratch_Buffer&amp;diff=1606</id>
		<title>WikEmacs:Scratch Buffer</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=WikEmacs:Scratch_Buffer&amp;diff=1606"/>
		<updated>2012-03-29T18:19:09Z</updated>

		<summary type="html">&lt;p&gt;Francesco: test for a major-mode infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Text Editing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Snippet|&lt;br /&gt;
(this (is &lt;br /&gt;
    (&amp;quot;a test&amp;quot;)))}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+ capiton&lt;br /&gt;
|-&lt;br /&gt;
| EST&lt;br /&gt;
| New York&lt;br /&gt;
| -5:00&lt;br /&gt;
|-&lt;br /&gt;
| IST&lt;br /&gt;
| Madras&lt;br /&gt;
| +5:30&lt;br /&gt;
|-&lt;br /&gt;
| AST&lt;br /&gt;
| Bahrain&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Infobox major-mode&lt;br /&gt;
| name = C++&lt;br /&gt;
| command = c++-mode&lt;br /&gt;
| library = cc-mode&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Category:Beginner&amp;diff=1337</id>
		<title>Category:Beginner</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Category:Beginner&amp;diff=1337"/>
		<updated>2012-03-28T18:31:50Z</updated>

		<summary type="html">&lt;p&gt;Francesco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you're new to Emacs, you should be interested by the pages listed here. If you've never been exposed to conventional Emacs notations or terminology, you should probably get started by reading the following articles first:&lt;br /&gt;
* [[How to read this wiki]]&lt;br /&gt;
* [[Emacs Terminology]]&lt;br /&gt;
&lt;br /&gt;
[[Category:User Level]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=How_to_read_this_wiki&amp;diff=1336</id>
		<title>How to read this wiki</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=How_to_read_this_wiki&amp;diff=1336"/>
		<updated>2012-03-28T18:25:15Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Links to official manual sections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A few conventions and notations are used throughout this wiki. Most of them are very similar to those used in the Emacs Manual&lt;br /&gt;
&lt;br /&gt;
== Key bindings and commands ==&lt;br /&gt;
&lt;br /&gt;
The notation {{Keys|C-M-a}}, denotes a key binding. Here, '''&amp;lt;tt&amp;gt;C-&amp;lt;/tt&amp;gt;''' represents the ''&amp;lt;Control&amp;gt;'' key (which is labelled ''&amp;lt;Ctrl&amp;gt;'' on most keyboards), '''&amp;lt;tt&amp;gt;M-&amp;lt;/tt&amp;gt;''' represents the ''&amp;lt;Meta&amp;gt;'' key (which is labelled ''&amp;lt;Alt&amp;gt;'' on most keyboards), and '''&amp;lt;/tt&amp;gt;a&amp;lt;/tt&amp;gt;''' simply represents the ''a'' key. Thus, to produce this key combination, you should press simultaneously the ''&amp;lt;Ctrl&amp;gt;'', ''&amp;lt;Alt&amp;gt;'', and ''a'' keys on your keyboard.&lt;br /&gt;
&lt;br /&gt;
You can form sequences of key bindings. For example {{Keys|C-x C-c}} denotes the {{Keys|C-x}} key combination (i.e. ''&amp;lt;ctrl&amp;gt;''+''x'') followed by the {{Keys|C-c}} key combination (i.e. ''&amp;lt;ctrl&amp;gt;''+''c'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is a list of some keys you might encounter on this wiki:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! notation&lt;br /&gt;
! corresponding key&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;C-&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;Ctrl&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;M-&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;Meta&amp;gt; or &amp;lt;Alt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;S-&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;Shift&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;left&amp;lt;/tt&amp;gt;''' &lt;br /&gt;
| &amp;lt;left arrow&amp;gt; (similar notations are used for all arrow keys)&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;RET&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;return&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sometimes, the command bound to a key sequence is listed next to it in this way: {{CommandKeys|C-x C-f|find-file}}.&lt;br /&gt;
&lt;br /&gt;
This means that instead of typing the {{Keys|C-x C-f}} key binding, you could achieve the same effect by typing:&lt;br /&gt;
: '''&amp;lt;tt&amp;gt;M-x find-file RET&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== Links to official manual sections ==&lt;br /&gt;
&lt;br /&gt;
This wiki does not aim at reproducing official GNU documentation. Instead, it links to it using this notation: {{Manual|emacs|Major-Modes|Major Modes}}.&lt;br /&gt;
&lt;br /&gt;
You can of course click on the link to view the relevant manual section (in this case, the &amp;quot;Major Modes&amp;quot; section of the Emacs manual). But since Emacs is self-documented, you can also directly see the documentation within Emacs, by typing:&lt;br /&gt;
: '''&amp;lt;tt&amp;gt;M-: (info &amp;quot;(emacs) Major Modes&amp;quot;) RET&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Beginner]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=How_to_read_this_wiki&amp;diff=1335</id>
		<title>How to read this wiki</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=How_to_read_this_wiki&amp;diff=1335"/>
		<updated>2012-03-28T18:23:17Z</updated>

		<summary type="html">&lt;p&gt;Francesco: /* Key bindings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A few conventions and notations are used throughout this wiki. Most of them are very similar to those used in the Emacs Manual&lt;br /&gt;
&lt;br /&gt;
== Key bindings and commands ==&lt;br /&gt;
&lt;br /&gt;
The notation {{Keys|C-M-a}}, denotes a key binding. Here, '''&amp;lt;tt&amp;gt;C-&amp;lt;/tt&amp;gt;''' represents the ''&amp;lt;Control&amp;gt;'' key (which is labelled ''&amp;lt;Ctrl&amp;gt;'' on most keyboards), '''&amp;lt;tt&amp;gt;M-&amp;lt;/tt&amp;gt;''' represents the ''&amp;lt;Meta&amp;gt;'' key (which is labelled ''&amp;lt;Alt&amp;gt;'' on most keyboards), and '''&amp;lt;/tt&amp;gt;a&amp;lt;/tt&amp;gt;''' simply represents the ''a'' key. Thus, to produce this key combination, you should press simultaneously the ''&amp;lt;Ctrl&amp;gt;'', ''&amp;lt;Alt&amp;gt;'', and ''a'' keys on your keyboard.&lt;br /&gt;
&lt;br /&gt;
You can form sequences of key bindings. For example {{Keys|C-x C-c}} denotes the {{Keys|C-x}} key combination (i.e. ''&amp;lt;ctrl&amp;gt;''+''x'') followed by the {{Keys|C-c}} key combination (i.e. ''&amp;lt;ctrl&amp;gt;''+''c'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is a list of some keys you might encounter on this wiki:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! notation&lt;br /&gt;
! corresponding key&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;C-&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;Ctrl&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;M-&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;Meta&amp;gt; or &amp;lt;Alt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;S-&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;Shift&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;left&amp;lt;/tt&amp;gt;''' &lt;br /&gt;
| &amp;lt;left arrow&amp;gt; (similar notations are used for all arrow keys)&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;lt;tt&amp;gt;RET&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
| &amp;lt;return&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sometimes, the command bound to a key sequence is listed next to it in this way: {{CommandKeys|C-x C-f|find-file}}.&lt;br /&gt;
&lt;br /&gt;
This means that instead of typing the {{Keys|C-x C-f}} key binding, you could achieve the same effect by typing:&lt;br /&gt;
: '''&amp;lt;tt&amp;gt;M-x find-file RET&amp;lt;/tt&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== Links to official manual sections ==&lt;br /&gt;
&lt;br /&gt;
This wiki does not aim at reproducing official GNU documentation. Instead, it links to it using this notation: {{Manual|emacs|Major-Modes|Major Modes}}. You can of course click on the link to view the relevant manual section (in this case, the &amp;quot;Major Modes&amp;quot; section of the Emacs manual). But since Emacs is self-documented, you can also directly see the documentation within Emacs, by typing:&lt;br /&gt;
: '''M-: (info &amp;quot;(emacs) Major Modes&amp;quot;) RET'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Beginner]]&lt;/div&gt;</summary>
		<author><name>Francesco</name></author>
	</entry>
</feed>