<?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=Bozhidar</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=Bozhidar"/>
	<link rel="alternate" type="text/html" href="https://wikemacs.org/wiki/Special:Contributions/Bozhidar"/>
	<updated>2026-04-12T05:15:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikemacs.org/index.php?title=User:Bozhidar&amp;diff=50826</id>
		<title>User:Bozhidar</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=User:Bozhidar&amp;diff=50826"/>
		<updated>2018-09-20T20:00:56Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Update the info about me&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My name is Bozhidar and I've started WikEmacs a few years back as an attempt to create a solid and clean alternative to EmacsWiki. &lt;br /&gt;
&lt;br /&gt;
I maintain a couple of smallish open-source Emacs projects here and there (mostly on [https://github.com/bbatsov GitHub]) and I’ve contributed to many more. &lt;br /&gt;
&lt;br /&gt;
I blog infrequently on [http://emacsredux.com Emacs Redux].&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs Contributor]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=CIDER&amp;diff=46565</id>
		<title>CIDER</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=CIDER&amp;diff=46565"/>
		<updated>2014-03-22T12:25:20Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Update maintainer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=CIDER&lt;br /&gt;
|description=Emacs Client for Clojure's nREPL&lt;br /&gt;
|author=Tim King&lt;br /&gt;
|maintainer=Bozhidar Batsov&lt;br /&gt;
|source=https://github.com/clojure-emacs/cider&lt;br /&gt;
}}&lt;br /&gt;
&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;
(add-to-list 'load-path &amp;quot;/path/to/cider/directory&amp;quot;)&lt;br /&gt;
(require 'cider)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[SLIME]]&lt;br /&gt;
* [[swank-clojure]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* [https://github.com/clojure-emacs/cider GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Project Management]][[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Main_Page&amp;diff=3731</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Main_Page&amp;diff=3731"/>
		<updated>2013-04-14T22:02:24Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Grand reopening message&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Grand reopening!''' '''WikEmacs''' is now under new management and will remain open indefinitely.  Spread the word!&lt;br /&gt;
[[File:Emacs_parts.png|320px|thumb|right|Basic terminology of typical Emacs GUI Frame]]&lt;br /&gt;
&lt;br /&gt;
---------&lt;br /&gt;
'''First time visitors''' can start [[#Explore WikEmacs|exploring WikEmacs]]. We have added lots of useful pages since the launch of WikEmacs. We want to keep you excited and engaged. &lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
We need more '''[[:Category:WikEmacs Contributor|WikEmacs Contributor]]s'''.  You can help the following way.&lt;br /&gt;
&lt;br /&gt;
{{Note| First of all, please take a minute to look at the&lt;br /&gt;
[[WikEmacs:Guidelines|WikEmacs Guidelines]] before you start editing.}}&lt;br /&gt;
&lt;br /&gt;
* Priority tasks&lt;br /&gt;
** Migrate content from [http://www.emacswiki.org EmacsWiki]. Please adopt the following approach -''I found this on EmacsWiki which was helpful. But it took me a lot of time to find it. Now that I have found it, I will put it in WikEmacs so that others can benefit from it.''&lt;br /&gt;
&lt;br /&gt;
* Intermediate tasks&lt;br /&gt;
** Provide tutorials or content for the [[:Category:Popular Package|popular packages]] or [[:Category:Built-in Package|built-in packages]].&lt;br /&gt;
** Add more content to [[Special:ShortPages|short pages]].&lt;br /&gt;
** Document or add more [[:Category:Third Party Package|third party packages]].&lt;br /&gt;
&lt;br /&gt;
* Other tasks&lt;br /&gt;
** Copy edit [[Special:RecentChanges|recent changes]] or be a moral police.&lt;br /&gt;
** Add more members to various [[Special:Categories|categories]].&lt;br /&gt;
** Categorize one of these pages [[Special:UncategorizedPages|uncategorized pages]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Emacs News'''&lt;br /&gt;
&lt;br /&gt;
The latest stable release of Emacs is [[GNU Emacs 24|Emacs-24.2]].&lt;br /&gt;
&lt;br /&gt;
Emacs is available on all popular [[:Category:Install Or Upgrade| Operating Systems]] including [[Installing Emacs on GNU/Linux | GNU/Linux]], [[Installing Emacs on BSD |BSD]], [[Installing Emacs on OS X | OS X]] and [[Installing Emacs on Windows| Windows]].  It supports a variety of [[:Category:Programming languages|programming languages]].&lt;br /&gt;
&lt;br /&gt;
= Explore WikEmacs =&lt;br /&gt;
&lt;br /&gt;
To explore WikEmacs proceed as follows:&lt;br /&gt;
* Search for or visit a page of interest&lt;br /&gt;
* At the end of the page, there is a list of categories&lt;br /&gt;
* Click on individual categories and it will give you a list of all pages that will be of interest to you.&lt;br /&gt;
&lt;br /&gt;
==  What is your comfort level with Emacs? ==&lt;br /&gt;
* [[:Category:Beginner|Beginner]]&lt;br /&gt;
* [[:Category:Intermediate|Intermediate]]&lt;br /&gt;
* [[:Category:Expert|Expert]]&lt;br /&gt;
** Are you a maintainer of a [[:Category:Built-in Package|Built-in Package]]? If you don't find information about your package, please add it. No one else is better than you are to write about it.&lt;br /&gt;
** Have you developed any [[:Category:Third Party Package|Third Party Package]]s? Consider writing about what it is and how to use it.&lt;br /&gt;
* [[:Category:Vim User|Vim User]]&lt;br /&gt;
&lt;br /&gt;
== What do you want to accomplish now? ==&lt;br /&gt;
* [[:Category:Install Or Upgrade|Install Or Upgrade]]&lt;br /&gt;
* [[:Category:Customization|Customize Emacs]]&lt;br /&gt;
* [[Key Bindings|Tweak Key Bindings]]&lt;br /&gt;
* [[:Category:Tutorial|Learn more Emacs (Tutorials)]]&lt;br /&gt;
&lt;br /&gt;
== What do you use Emacs for? ==&lt;br /&gt;
* [[:Category:Text Editing|Text Editing]]&lt;br /&gt;
* [[:Category:Programming|Programming]]&lt;br /&gt;
* [[:Category:Document authoring|Document authoring]]&lt;br /&gt;
* [[:Category:Organizer|Getting Organized]]&lt;br /&gt;
* [[:Category:Email|Emailing]]&lt;br /&gt;
* [[:Category:Chat|Chatting]]&lt;br /&gt;
* [[:Category:Blogging|Blogging]]&lt;br /&gt;
* [[:Category:Browse|Browsing]] &lt;br /&gt;
* [[:Category:Entertainment|Entertainment]]&lt;br /&gt;
* [[:Category:Workflow|Other]]&lt;br /&gt;
&lt;br /&gt;
== How do you involve yourself with the community? ==&lt;br /&gt;
* [[:Category:Emacs User|Emacs User]]&lt;br /&gt;
* [[:Category:Emacs Contributor|Emacs Contributor]]&lt;br /&gt;
* [[:Category:WikEmacs Contributor|WikEmacs Contributor]]&lt;br /&gt;
* [[:Category:User Role|Other]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Main_Page&amp;diff=3702</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Main_Page&amp;diff=3702"/>
		<updated>2013-01-27T09:14:22Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Important: ''' '''WikEmacs''' will be shutting down around March 2013. Please, visit  '''[http://www.emacswiki.org/ Emacs Wiki]''' instead. &lt;br /&gt;
[[File:Emacs_parts.png|320px|thumb|right|Basic terminology of typical Emacs GUI Frame]]&lt;br /&gt;
&lt;br /&gt;
---------&lt;br /&gt;
'''First time visitors''' can start [[#Explore WikEmacs|exploring WikEmacs]]. We have added lots of useful pages since the launch of WikEmacs. We want to keep you excited and engaged. &lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
We need more '''[[:Category:WikEmacs Contributor|WikEmacs Contributor]]s'''.  You can help the following way.&lt;br /&gt;
&lt;br /&gt;
{{Note| First of all, please take a minute to look at the&lt;br /&gt;
[[WikEmacs:Guidelines|WikEmacs Guidelines]] before you start editing.}}&lt;br /&gt;
&lt;br /&gt;
* Priority tasks&lt;br /&gt;
** Migrate content from [http://www.emacswiki.org EmacsWiki]. Please adopt the following approach -''I found this on EmacsWiki which was helpful. But it took me a lot of time to find it. Now that I have found it, I will put it in WikEmacs so that others can benefit from it.''&lt;br /&gt;
&lt;br /&gt;
* Intermediate tasks&lt;br /&gt;
** Provide tutorials or content for the [[:Category:Popular Package|popular packages]] or [[:Category:Built-in Package|built-in packages]].&lt;br /&gt;
** Add more content to [[Special:ShortPages|short pages]].&lt;br /&gt;
** Document or add more [[:Category:Third Party Package|third party packages]].&lt;br /&gt;
&lt;br /&gt;
* Other tasks&lt;br /&gt;
** Copy edit [[Special:RecentChanges|recent changes]] or be a moral police.&lt;br /&gt;
** Add more members to various [[Special:Categories|categories]].&lt;br /&gt;
** Categorize one of these pages [[Special:UncategorizedPages|uncategorized pages]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Emacs News'''&lt;br /&gt;
&lt;br /&gt;
The latest stable release of Emacs is [[GNU Emacs 24|Emacs-24.2]].&lt;br /&gt;
&lt;br /&gt;
Emacs is available on all popular [[:Category:Install Or Upgrade| Operating Systems]] including [[Installing Emacs on GNU/Linux | GNU/Linux]], [[Installing Emacs on BSD |BSD]], [[Installing Emacs on OS X | OS X]] and [[Installing Emacs on Windows| Windows]].  It supports a variety of [[:Category:Programming languages|programming languages]].&lt;br /&gt;
&lt;br /&gt;
= Explore WikEmacs =&lt;br /&gt;
&lt;br /&gt;
To explore WikEmacs proceed as follows:&lt;br /&gt;
* Search for or visit a page of interest&lt;br /&gt;
* At the end of the page, there is a list of categories&lt;br /&gt;
* Click on individual categories and it will give you a list of all pages that will be of interest to you.&lt;br /&gt;
&lt;br /&gt;
==  What is your comfort level with Emacs? ==&lt;br /&gt;
* [[:Category:Beginner|Beginner]]&lt;br /&gt;
* [[:Category:Intermediate|Intermediate]]&lt;br /&gt;
* [[:Category:Expert|Expert]]&lt;br /&gt;
** Are you a maintainer of a [[:Category:Built-in Package|Built-in Package]]? If you don't find information about your package, please add it. No one else is better than you are to write about it.&lt;br /&gt;
** Have you developed any [[:Category:Third Party Package|Third Party Package]]s? Consider writing about what it is and how to use it.&lt;br /&gt;
* [[:Category:Vim User|Vim User]]&lt;br /&gt;
&lt;br /&gt;
== What do you want to accomplish now? ==&lt;br /&gt;
* [[:Category:Install Or Upgrade|Install Or Upgrade]]&lt;br /&gt;
* [[:Category:Customization|Customize Emacs]]&lt;br /&gt;
* [[Key Bindings|Tweak Key Bindings]]&lt;br /&gt;
* [[:Category:Tutorial|Learn more Emacs (Tutorials)]]&lt;br /&gt;
&lt;br /&gt;
== What do you use Emacs for? ==&lt;br /&gt;
* [[:Category:Text Editing|Text Editing]]&lt;br /&gt;
* [[:Category:Programming|Programming]]&lt;br /&gt;
* [[:Category:Document authoring|Document authoring]]&lt;br /&gt;
* [[:Category:Organizer|Getting Organized]]&lt;br /&gt;
* [[:Category:Email|Emailing]]&lt;br /&gt;
* [[:Category:Chat|Chatting]]&lt;br /&gt;
* [[:Category:Blogging|Blogging]]&lt;br /&gt;
* [[:Category:Browse|Browsing]] &lt;br /&gt;
* [[:Category:Entertainment|Entertainment]]&lt;br /&gt;
* [[:Category:Workflow|Other]]&lt;br /&gt;
&lt;br /&gt;
== How do you involve yourself with the community? ==&lt;br /&gt;
* [[:Category:Emacs User|Emacs User]]&lt;br /&gt;
* [[:Category:Emacs Contributor|Emacs Contributor]]&lt;br /&gt;
* [[:Category:WikEmacs Contributor|WikEmacs Contributor]]&lt;br /&gt;
* [[:Category:User Role|Other]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Scala-mode2&amp;diff=3683</id>
		<title>Scala-mode2</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Scala-mode2&amp;diff=3683"/>
		<updated>2012-12-18T09:38:29Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: added a basic page on scala-mode2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=scala-mode2&lt;br /&gt;
|description=major mode for Scala programming&lt;br /&gt;
|author=Heikki Vesalainen&lt;br /&gt;
|maintainer=Heikki Vesalainen&lt;br /&gt;
|source=https://github.com/hvesalai/scala-mode2&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''scala-mode2''' provides Emacs font-lock, indentation, and navigation for the [[Scala]] programming language. It's a&lt;br /&gt;
rewrite from scratch of the older [[scala-mode]] and has improved support for Scala 2.9+.&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 'scala-mode2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[scala-mode]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/hvesalai/scala-mode2 GitHub Project]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Scala-mode&amp;diff=3682</id>
		<title>Scala-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Scala-mode&amp;diff=3682"/>
		<updated>2012-12-18T09:34:52Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: added a basic page on scala-mode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=scala-mode&lt;br /&gt;
|description=major mode for Haskell programming&lt;br /&gt;
|author=Martin Odersky&lt;br /&gt;
|maintainer=n/a&lt;br /&gt;
|source=http://lampsvn.epfl.ch/svn-repos/scala/scala-tool-support/trunk/src/emacs/&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''scala-mode''' provides Emacs font-lock, indentation, and navigation for the [[Scala]] programming language.&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 'scala-mode-autoloads)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[scala-mode2]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.scala-lang.org/node/354 Emacs, scala-mode and yasnippet]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Twittering-mode&amp;diff=3677</id>
		<title>Twittering-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Twittering-mode&amp;diff=3677"/>
		<updated>2012-12-15T09:19:32Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: added a basic page for twittering-mode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=Twittering-mode&lt;br /&gt;
|description=Twitter client for Emacs&lt;br /&gt;
|author=Yuto Hayamizu&lt;br /&gt;
|maintainer=Yuto Hayamizu&lt;br /&gt;
|source=https://github.com/hayamiz/twittering-mode&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Twittering-mode''' is a Twitter client for Emacs.&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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[identica-mode]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://twmode.sourceforge.net/ Official Site]&lt;br /&gt;
* [https://github.com/hayamiz/twittering-mode GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=BibTeX&amp;diff=3655</id>
		<title>BibTeX</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=BibTeX&amp;diff=3655"/>
		<updated>2012-12-07T20:21:24Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Markup languages]][[Category:Document authoring]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Java-mode&amp;diff=3654</id>
		<title>Java-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Java-mode&amp;diff=3654"/>
		<updated>2012-12-07T20:21:23Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by GregLucas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox major-mode&lt;br /&gt;
|title = Emacs Lisp&lt;br /&gt;
|library = cc-mode&lt;br /&gt;
|command = java-mode&lt;br /&gt;
|builtin = yes&lt;br /&gt;
|auto activates = *.java&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''java-mode''' comes with Emacs which provides very basic [[syntax highlighting]].&lt;br /&gt;
&lt;br /&gt;
== Basic Setup ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also ==&lt;br /&gt;
[[Java]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
[[Category:Programming languages]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Package.el&amp;diff=3653</id>
		<title>Package.el</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Package.el&amp;diff=3653"/>
		<updated>2012-12-07T20:21:21Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by Jstein&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=package.el&lt;br /&gt;
|description=Package Manager&lt;br /&gt;
|author=Tom Tromey&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://repo.or.cz/w/emacs.git/blob_plain/HEAD:/lisp/emacs-lisp/package.el&lt;br /&gt;
|in_emacs=24&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
package.el is the built-in package manager in Emacs 24. &lt;br /&gt;
&lt;br /&gt;
== Install package.el on Emacs 23 ==&lt;br /&gt;
&amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; is bundled with Emacs 24, but it’s not bound to Emacs 24. Before it became part of Emacs it was an external package, known as package.el that was tied to repository called ELPA ('''E'''macs '''L'''isp '''P'''ackage '''A'''rchive). So even if you’re an Emacs 23 user you can copy the latest version of &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; from [http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el here] and enjoy it.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Put the following snippet of code near the beginning of your Emacs config, since you’ll definitely want packages installed via &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; to be initalized ''before'' you start tweaking them.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(require 'package)&lt;br /&gt;
(package-initialize)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Select Packages from the List ==&lt;br /&gt;
[[File:M-x package-list-packages.png|400px|thumb|right|M-x package-list-packages]]&lt;br /&gt;
&amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; connects to a list of package repositories, retrieves the list of the packages there, presents it to you in a interactive fashion and lets you install the packages you like (of course you can also remove the ones you don’t like). &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; understands the dependencies between packages and if one package requires others to run they will be installed automatically (which is really neat).&lt;br /&gt;
&lt;br /&gt;
The magic starts with the command {{Command|package-list-packages}}. At this point you should see something in the lines of this.&lt;br /&gt;
&lt;br /&gt;
You can navigate the list of packages, mark the ones you want to install with the “i” key or the ones you want removed with the “d” key and when you’re done you can press the “x” key to execute the scheduled actions.&lt;br /&gt;
&lt;br /&gt;
Initially &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; didn’t provide the option to update a package, but that should be fixed in recent Emacs builds. According to this [http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00371.html thread] you can even update all of the installed packages by using the “U” key in the packages list view (I guess that a small “u” would update only one package). Unfortunately my build is lacking those capabilities so I cannot comment of their usability.&lt;br /&gt;
&lt;br /&gt;
== How to add additional repository ==&lt;br /&gt;
The list of available packages is short because the official Emacs 24 package repository has strict licensing (and source code) requirements to include a package there. Luckily there are a number of community-maintained &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; repos around with much more relaxed requirements. Probably the most popular of them is [http://marmalade-repo.org/ Marmalade], created by [http://nex-3.com/ Nathan Weizenbaum] of Sass and Haml fame. You can include it in your &amp;lt;tt&amp;gt;package-archives&amp;lt;/tt&amp;gt; list like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-to-list 'package-archives '(&amp;quot;marmalade&amp;quot; . &amp;quot;http://marmalade-repo.org/packages/&amp;quot;))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Marmalade provides a web based UI for package upload and search (both quite buggy unfortunately) and the ability to share the maintenance of a package between several people, who’ll be able to upload new version of the package. There’s also a Emacs Lisp Marmalade tool, that allows you to submit packages directly from Emacs.&lt;br /&gt;
&lt;br /&gt;
== How to use it with a custom build ==&lt;br /&gt;
Using the &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; UI is ok if you’re a casual Emacs user, but what if you have a custom Emacs configuration, stored under version control, that you’d like to instantly deploy on any OS/machine (like Emacs Prelude). Here in play comes &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt;’s programmer interface. In [https://github.com/bbatsov/emacs-prelude Emacs Prelude] I use the following code to install a list of required packages automatically on Emacs startup (if necessary):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Comment out if you've already loaded this package...&lt;br /&gt;
(require 'cl)&lt;br /&gt;
&lt;br /&gt;
(defvar my-packages&lt;br /&gt;
  '(ack-and-a-half auctex clojure-mode coffee-mode deft expand-region&lt;br /&gt;
                   gist groovy-mode haml-mode haskell-mode inf-ruby&lt;br /&gt;
                   magit magithub markdown-mode paredit projectile python&lt;br /&gt;
                   sass-mode rainbow-mode scss-mode solarized-theme&lt;br /&gt;
                   volatile-highlights yaml-mode yari zenburn-theme)&lt;br /&gt;
  &amp;quot;A list of packages to ensure are installed at launch.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
(defun my-packages-installed-p ()&lt;br /&gt;
  (loop for p in prelude-packages&lt;br /&gt;
        when (not (package-installed-p p)) do (return nil)&lt;br /&gt;
        finally (return t)))&lt;br /&gt;
&lt;br /&gt;
(unless (my-packages-installed-p)&lt;br /&gt;
  ;; check for new packages (package versions)&lt;br /&gt;
  (package-refresh-contents)&lt;br /&gt;
  ;; install the missing packages&lt;br /&gt;
  (dolist (p prelude-packages)&lt;br /&gt;
    (when (not (package-installed-p p))&lt;br /&gt;
      (package-install p))))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code check if all of the packages in the list are installed and if any of them are not installed if refreshes the local package database (in the case a required package for recently added to the remote repo) and installs them.&lt;br /&gt;
&lt;br /&gt;
== How to publish it to Marmalade ==&lt;br /&gt;
To be able to publish a package to Marmalade (or another repo) it should comform a standardized structure. A single-file package might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;;; sass-mode.el --- Sass major mode&lt;br /&gt;
&lt;br /&gt;
;; Copyright 2007-2010 Nathan Weizenbaum&lt;br /&gt;
&lt;br /&gt;
;; Author: Nathan Weizenbaum &amp;lt;nex342@gmail.com&amp;gt;&lt;br /&gt;
;; URL: http://github.com/nex3/sass-mode&lt;br /&gt;
;; Version: 3.0.20&lt;br /&gt;
;; Package-Requires: ((haml-mode &amp;quot;3.0.20&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
;; Code goes here&lt;br /&gt;
&lt;br /&gt;
;;; sass-mode.el ends here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A multi-file package should have an additional file named&lt;br /&gt;
`&amp;lt;name&amp;gt;-pkg.el` that should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define-package &amp;quot;sass-mode&amp;quot; &amp;quot;3.0.20&amp;quot;&lt;br /&gt;
                &amp;quot;Sass major mode&amp;quot;&lt;br /&gt;
                '((haml-mode &amp;quot;3.0.20&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== package.el Repositories ==&lt;br /&gt;
&lt;br /&gt;
* [[ELPA]]&lt;br /&gt;
* [[MELPA]]&lt;br /&gt;
* [[Marmalade]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://batsov.com/articles/2012/02/19/package-management-in-emacs-the-good-the-bad-and-the-ugly/ Package Management in Emacs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Manager]][[Category:Built-in Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Input_methods&amp;diff=3652</id>
		<title>Input methods</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Input_methods&amp;diff=3652"/>
		<updated>2012-12-07T20:20:28Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by S9nn9s&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Input Methods''' allow you to enter characters that are not supported by your keyboard.&lt;br /&gt;
&lt;br /&gt;
= Helpful keybindings =&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|C-x C-m C-\|set-input-method}}&lt;br /&gt;
: Switch to a new input method.&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|C-h C-\|describe-input-method}}&lt;br /&gt;
: Tells you how to enter a particular character for the current input mehtod.&lt;br /&gt;
&lt;br /&gt;
; {{CommandKeys|C-\|toggle-input-method}}&lt;br /&gt;
: Switch to your default input method.&lt;br /&gt;
&lt;br /&gt;
= TeX input method =&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-m C-\ TeX}}&lt;br /&gt;
: To type greek character λ, enter \lambda.&lt;br /&gt;
&lt;br /&gt;
= Accented characters =&lt;br /&gt;
&lt;br /&gt;
; {{Keys|C-x C-m C-\ latin-1-prefix RET}}&lt;br /&gt;
: Use this method to input accented characters. When you type `&amp;quot; u' you get `ü'. Another You method is to {{PrefixKeys|C-x 8}}.&lt;br /&gt;
&lt;br /&gt;
= [[GNU/Linux]] =&lt;br /&gt;
= [[OS X]] =&lt;br /&gt;
= [[Windows]] =&lt;br /&gt;
= [[Emacs-24]] =&lt;br /&gt;
= [[Emacs-23]] =&lt;br /&gt;
= Recommended Reading =&lt;br /&gt;
= Project Pages =&lt;br /&gt;
= Tutorial Pages =&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[Ibus]] mode, a minor mode, allow user to use ibus input framework directly in Emacs, with Chinese and Japnese support.&lt;br /&gt;
[[Category:Mule]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=MELPA&amp;diff=3650</id>
		<title>MELPA</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=MELPA&amp;diff=3650"/>
		<updated>2012-12-07T20:20:26Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MELPA''' (or Milkypostman’s ELPA or Milkypostman’s Experimental Lisp Package Repository if you’re not into the whole brevity thing) is a [[package.el]] repository for development versions of Emacs packages (hot from the repo).&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;
(add-to-list 'package-archives&lt;br /&gt;
             '(&amp;quot;melpa&amp;quot; . &amp;quot;http://melpa.milkbox.net/packages/&amp;quot;) t)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Marmalade]]&lt;br /&gt;
* [[package.el]]&lt;br /&gt;
* [[el-get]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://melpa.milkbox.net/ Project Page]&lt;br /&gt;
* [https://github.com/milkypostman/melpa GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://batsov.com/articles/2012/04/06/melpa-homebrew-emacs-edition/ MELPA - Homebrew (Emacs Edition)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project Management]][[Category:Convenience]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Installing_Emacs&amp;diff=3649</id>
		<title>Installing Emacs</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Installing_Emacs&amp;diff=3649"/>
		<updated>2012-12-07T20:20:25Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Emacs Releases ==&lt;br /&gt;
&lt;br /&gt;
The latest released version of Emacs is [[:Category:Emacs-24.1|Emacs-24.2]].&lt;br /&gt;
&lt;br /&gt;
== Installing Emacs ==&lt;br /&gt;
&lt;br /&gt;
Emacs is available on all popular [[:Category:Operating System | operating systems]] including [[GNU/Linux]], [[OSX]], [[FreeBSD]] and [[Windows]].  See the respective pages for installation instruction and platform specific customization:&lt;br /&gt;
&lt;br /&gt;
* [[Installing Emacs on OS X]]&lt;br /&gt;
* [[Installing Emacs on GNU/Linux]]&lt;br /&gt;
* [[Installing Emacs on Windows]]&lt;br /&gt;
* [[Installing Emacs on FreeBSD]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Install Or Upgrade‎]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Haskell-mode&amp;diff=3648</id>
		<title>Haskell-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Haskell-mode&amp;diff=3648"/>
		<updated>2012-12-07T20:20:12Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=haskell-mode&lt;br /&gt;
|description=major mode for Haskell programming&lt;br /&gt;
|author=Chris Done&lt;br /&gt;
|maintainer=Chris Done&lt;br /&gt;
|source=https://github.com/haskell/haskell-mode&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''haskell-mode''' provides Emacs font-lock, indentation, and navigation for the [[Haskell]] programming language.&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 'haskell-mode)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/haskell/haskell-mode GitHub Project]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/watch?v=E6xIjl06Lr4 New features in haskell-mode (screencast)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Skeleton&amp;diff=3647</id>
		<title>Skeleton</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Skeleton&amp;diff=3647"/>
		<updated>2012-12-07T20:19:52Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=Skeleton&lt;br /&gt;
|description=Insert the complex statement skeleton SKELETON describes very concisely.&lt;br /&gt;
|source=http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/skeleton.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;
'''Skeleton''' library can be used to create documents based on&lt;br /&gt;
templates.&lt;br /&gt;
&lt;br /&gt;
== Keep some chars always balanced ==&lt;br /&gt;
&lt;br /&gt;
Use the below setting to insert paired characters with just a single&lt;br /&gt;
keystroke. &lt;br /&gt;
&lt;br /&gt;
For example, typing ''''('''' will automatically insert ''''()'''' in&lt;br /&gt;
to the buffer. Similarly typing ''''{'''' will automatically insert&lt;br /&gt;
''''{}''''. This way parenthesis, quotes etc will always remain&lt;br /&gt;
balanced. This setting is quite useful if you are editing&lt;br /&gt;
[[Emacs Lisp]], [[C]] etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(require 'skeleton)&lt;br /&gt;
(setq skeleton-pair t)&lt;br /&gt;
(global-set-key &amp;quot;\&amp;quot;&amp;quot; 'skeleton-pair-insert-maybe)&lt;br /&gt;
(global-set-key &amp;quot;(&amp;quot; 'skeleton-pair-insert-maybe)&lt;br /&gt;
(global-set-key &amp;quot;[&amp;quot; 'skeleton-pair-insert-maybe)&lt;br /&gt;
(global-set-key &amp;quot;{&amp;quot; 'skeleton-pair-insert-maybe)&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:Editing]]&lt;br /&gt;
[[Category:Template System]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Main_Page&amp;diff=3646</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Main_Page&amp;diff=3646"/>
		<updated>2012-12-07T20:19:25Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Debrita (talk) to last revision by 66.223.230.23&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WikEmacs''' (pronounced wiki-macs) collects useful resources for working with [[GNU Emacs]]. Think of it as a&lt;br /&gt;
'''next-generation, better-structured and improved [http://www.emacswiki.org/ Emacs Wiki]''' . &lt;br /&gt;
[[File:Emacs_parts.png|320px|thumb|right|Basic terminology of typical Emacs GUI Frame]]&lt;br /&gt;
&lt;br /&gt;
---------&lt;br /&gt;
'''First time visitors''' can start [[#Explore WikEmacs|exploring WikEmacs]]. We have added lots of useful pages since the launch of WikEmacs. We want to keep you excited and engaged. &lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
We need more '''[[:Category:WikEmacs Contributor|WikEmacs Contributor]]s'''.  You can help the following way.&lt;br /&gt;
&lt;br /&gt;
{{Note| First of all, please take a minute to look at the&lt;br /&gt;
[[WikEmacs:Guidelines|WikEmacs Guidelines]] before you start editing.}}&lt;br /&gt;
&lt;br /&gt;
* Priority tasks&lt;br /&gt;
** Migrate content from [http://www.emacswiki.org EmacsWiki]. Please adopt the following approach -''I found this on EmacsWiki which was helpful. But it took me a lot of time to find it. Now that I have found it, I will put it in WikEmacs so that others can benefit from it.''&lt;br /&gt;
&lt;br /&gt;
* Intermediate tasks&lt;br /&gt;
** Provide tutorials or content for the [[:Category:Popular Package|popular packages]] or [[:Category:Built-in Package|built-in packages]].&lt;br /&gt;
** Add more content to [[Special:ShortPages|short pages]].&lt;br /&gt;
** Document or add more [[:Category:Third Party Package|third party packages]].&lt;br /&gt;
&lt;br /&gt;
* Other tasks&lt;br /&gt;
** Copy edit [[Special:RecentChanges|recent changes]] or be a moral police.&lt;br /&gt;
** Add more members to various [[Special:Categories|categories]].&lt;br /&gt;
** Categorize one of these pages [[Special:UncategorizedPages|uncategorized pages]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Emacs News'''&lt;br /&gt;
&lt;br /&gt;
The latest stable release of Emacs is [[GNU Emacs 24|Emacs-24.2]].&lt;br /&gt;
&lt;br /&gt;
Emacs is available on all popular [[:Category:Install Or Upgrade| Operating Systems]] including [[Installing Emacs on GNU/Linux | GNU/Linux]], [[Installing Emacs on BSD |BSD]], [[Installing Emacs on OS X | OS X]] and [[Installing Emacs on Windows| Windows]].  It supports a variety of [[:Category:Programming languages|programming languages]].&lt;br /&gt;
&lt;br /&gt;
= Explore WikEmacs =&lt;br /&gt;
&lt;br /&gt;
To explore WikEmacs proceed as follows:&lt;br /&gt;
* Search for or visit a page of interest&lt;br /&gt;
* At the end of the page, there is a list of categories&lt;br /&gt;
* Click on individual categories and it will give you a list of all pages that will be of interest to you.&lt;br /&gt;
&lt;br /&gt;
==  What is your comfort level with Emacs? ==&lt;br /&gt;
* [[:Category:Beginner|Beginner]]&lt;br /&gt;
* [[:Category:Intermediate|Intermediate]]&lt;br /&gt;
* [[:Category:Expert|Expert]]&lt;br /&gt;
** Are you a maintainer of a [[:Category:Built-in Package|Built-in Package]]? If you don't find information about your package, please add it. No one else is better than you are to write about it.&lt;br /&gt;
** Have you developed any [[:Category:Third Party Package|Third Party Package]]s? Consider writing about what it is and how to use it.&lt;br /&gt;
* [[:Category:Vim User|Vim User]]&lt;br /&gt;
&lt;br /&gt;
== What do you want to accomplish now? ==&lt;br /&gt;
* [[:Category:Install Or Upgrade|Install Or Upgrade]]&lt;br /&gt;
* [[:Category:Customization|Customize Emacs]]&lt;br /&gt;
* [[Key Bindings|Tweak Key Bindings]]&lt;br /&gt;
* [[:Category:Tutorial|Learn more Emacs (Tutorials)]]&lt;br /&gt;
&lt;br /&gt;
== What do you use Emacs for? ==&lt;br /&gt;
* [[:Category:Text Editing|Text Editing]]&lt;br /&gt;
* [[:Category:Programming|Programming]]&lt;br /&gt;
* [[:Category:Document authoring|Document authoring]]&lt;br /&gt;
* [[:Category:Organizer|Getting Organized]]&lt;br /&gt;
* [[:Category:Email|Emailing]]&lt;br /&gt;
* [[:Category:Chat|Chatting]]&lt;br /&gt;
* [[:Category:Blogging|Blogging]]&lt;br /&gt;
* [[:Category:Browse|Browsing]] &lt;br /&gt;
* [[:Category:Entertainment|Entertainment]]&lt;br /&gt;
* [[:Category:Workflow|Other]]&lt;br /&gt;
&lt;br /&gt;
== How do you involve yourself with the community? ==&lt;br /&gt;
* [[:Category:Emacs User|Emacs User]]&lt;br /&gt;
* [[:Category:Emacs Contributor|Emacs Contributor]]&lt;br /&gt;
* [[:Category:WikEmacs Contributor|WikEmacs Contributor]]&lt;br /&gt;
* [[:Category:User Role|Other]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=WikEmacs:Community_portal&amp;diff=3429</id>
		<title>WikEmacs:Community portal</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=WikEmacs:Community_portal&amp;diff=3429"/>
		<updated>2012-10-16T09:34:53Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Questions should be asked on the discussion page for each article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the community portal. This is the place to find out what is happening on WikEmacs. Learn what tasks need to be done and what groups there are to join, and share news about recent events or current activities taking place on WikEmacs.&lt;br /&gt;
&lt;br /&gt;
WikEmacs was just started and we need more '''[[:Category:WikEmacs Contributor|WikEmacs Contributor]]s'''.  You can help the following way.&lt;br /&gt;
&lt;br /&gt;
* Priority tasks&lt;br /&gt;
** Migrate content from [http://www.emacswiki.org EmacsWiki]. Please adopt the following approach -''I found this on EmacsWiki which was helpful. But it took me a lot of time to find it. Now that I have found it, I will put it in WikEmacs so that others can benefit from it.''&lt;br /&gt;
&lt;br /&gt;
* Intermediate tasks&lt;br /&gt;
** Provide tutorials or content for the [[:Category:Popular Package|Popular Packages]] or [[:Category:Native Package|Native Packages]].&lt;br /&gt;
** Add more content to [[Special:ShortPages]]&lt;br /&gt;
** Document or add more [[:Category:Third Party Package|Third Party Package]]s&lt;br /&gt;
&lt;br /&gt;
* Other tasks&lt;br /&gt;
** Copy edit [[Special:RecentChanges]] or be a moral police&lt;br /&gt;
** Add more members to various [[Special:Categories]]&lt;br /&gt;
** Categorize one of these pages [[Special:UncategorizedPages]]&lt;br /&gt;
&lt;br /&gt;
== Google group ==&lt;br /&gt;
[https://groups.google.com/forum/?fromgroups#!forum/wikemacs WikEmacs on Google Group] for more general questions regarding the wiki.&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=CIDER&amp;diff=3389</id>
		<title>CIDER</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=CIDER&amp;diff=3389"/>
		<updated>2012-09-11T15:54:06Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: added a basic nrepl.el page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=nrepl.el&lt;br /&gt;
|description=Emacs Client for Clojure's nREPL&lt;br /&gt;
|author=Tim King&lt;br /&gt;
|maintainer=Tim King&lt;br /&gt;
|source=https://github.com/kingtim/nrepl.el&lt;br /&gt;
}}&lt;br /&gt;
&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;
(add-to-list 'load-path &amp;quot;/path/to/nrepl.el/directory&amp;quot;)&lt;br /&gt;
(require 'nrepl)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[SLIME]]&lt;br /&gt;
* [[swank-clojure]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* [https://github.com/kingtim/nrepl.el GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Project Management]][[Category:Programming]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Installing_Emacs_on_GNU/Linux&amp;diff=3388</id>
		<title>Installing Emacs on GNU/Linux</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Installing_Emacs_on_GNU/Linux&amp;diff=3388"/>
		<updated>2012-09-06T14:01:53Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Check if your distribution already provides an Emacs version of interest to you. &lt;br /&gt;
&lt;br /&gt;
If you are interested in daily builds or latest binaries,  try building from [https://github.com/emacsmirror/emacs source] or try one of the following unofficial repositories based on your distribution.&lt;br /&gt;
&lt;br /&gt;
= Debian =&lt;br /&gt;
&lt;br /&gt;
== Emacs 23 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo apt-get install emacs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Emacs 24 ==&lt;br /&gt;
See [http://emacs.naquadah.org/ emacs-snapshot APT repo]. The page contains installation instructions. High quality, highly recommended builds! After adding the repo according to the instructions linked to above, install with the following command:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo apt-get install emacs-snapshot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
== Emacs 23 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo apt-get install emacs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Emacs 24 ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo apt-add-repository ppa:cassou/emacs&lt;br /&gt;
$ sudo apt-get install emacs-snapshot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
See [http://www.gentoo.org/proj/en/lisp/emacs/emacs.xml Emacs on Gentoo page].&lt;br /&gt;
&lt;br /&gt;
= Arch Linux =&lt;br /&gt;
&lt;br /&gt;
== Emacs 23 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo pacman -S emacs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Emacs 24 ==&lt;br /&gt;
&lt;br /&gt;
See  [http://aur.archlinux.org/packages.php?ID=33337 emacs-bzr] package from [http://aur.archlinux.org/index.php AUR]&lt;br /&gt;
&lt;br /&gt;
= Slackware =&lt;br /&gt;
Compile and Install using [http://github.com/cycojesus/slackbuilds/tree/master/e/emacs emacs.SlackBuild (unofficial)].&lt;br /&gt;
&lt;br /&gt;
= Fedora =&lt;br /&gt;
&lt;br /&gt;
== Emacs 23 ==&lt;br /&gt;
Available up to Fedora 16&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo yum install emacs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Emacs 24 ==&lt;br /&gt;
Available from Fedora 17+&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo yum install emacs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SusE =&lt;br /&gt;
&lt;br /&gt;
== Emacs 23 ==&lt;br /&gt;
&lt;br /&gt;
Available in 12.1 and 12.2. Before that? not sure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo zypper install emacs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Emacs 24 ==&lt;br /&gt;
&lt;br /&gt;
Not available till 12.2, but available from Factory repo. Add factory repo and then,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo zypper install emacs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Mandriva =&lt;br /&gt;
No pre-built packages.&lt;br /&gt;
&lt;br /&gt;
[[Category:GNU/Linux]][[Category:Beginner]][[Category:Install Or Upgrade]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Main_Page&amp;diff=3387</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Main_Page&amp;diff=3387"/>
		<updated>2012-09-06T13:59:57Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: mostly cosmetic changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WikEmacs''' (pronounced wiki-macs) collects useful resources for working with [[GNU Emacs]]. Think of it as a&lt;br /&gt;
'''next generation, better structured and improved [http://www.emacswiki.org/ Emacs Wiki]''' . &lt;br /&gt;
[[File:Emacs_parts.png|320px|thumb|right|Basic terminology of typical Emacs GUI Frame]]&lt;br /&gt;
&lt;br /&gt;
---------&lt;br /&gt;
'''First time visitors''' can start [[#Explore WikEmacs|exploring WikEmacs]]. We have added lots of useful pages since the launch of WikEmacs. We want to keep you excited and engaged. &lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
We need more '''[[:Category:WikEmacs Contributor|WikEmacs Contributor]]s'''.  You can help the following way.&lt;br /&gt;
&lt;br /&gt;
{{Note| First of all, please take a minute to look at the&lt;br /&gt;
[[WikEmacs:Guidelines|WikEmacs Guidelines]] before you start editing.}}&lt;br /&gt;
&lt;br /&gt;
* Priority tasks&lt;br /&gt;
** Migrate content from [http://www.emacswiki.org EmacsWiki]. Please adopt the following approach -''I found this on EmacsWiki which was helpful. But it took me a lot of time to find it. Now that I have found it, I will put it in WikEmacs so that others can benefit from it.''&lt;br /&gt;
&lt;br /&gt;
* Intermediate tasks&lt;br /&gt;
** Provide tutorials or content for the [[:Category:Popular Package|popular packages]] or [[:Category:Built-in Package|built-in packages]].&lt;br /&gt;
** Add more content to [[Special:ShortPages|short pages]].&lt;br /&gt;
** Document or add more [[:Category:Third Party Package|third party packages]].&lt;br /&gt;
&lt;br /&gt;
* Other tasks&lt;br /&gt;
** Copy edit [[Special:RecentChanges|recent changes]] or be a moral police.&lt;br /&gt;
** Add more members to various [[Special:Categories|categories]].&lt;br /&gt;
** Categorize one of these pages [[Special:UncategorizedPages|uncategorized pages]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Emacs News'''&lt;br /&gt;
&lt;br /&gt;
The latest stable release of Emacs is [[GNU Emacs 24|Emacs-24.2]].&lt;br /&gt;
&lt;br /&gt;
Emacs is available on all popular [[:Category:Install Or Upgrade| Operating Systems]] including [[Installing Emacs on GNU/Linux | GNU/Linux]], [[Installing Emacs on BSD |BSD]], [[Installing Emacs on OS X | OS X]] and [[Installing Emacs on Windows| Windows]].  It supports a variety of [[:Category:Programming languages|programming languages]].&lt;br /&gt;
&lt;br /&gt;
= Explore WikEmacs =&lt;br /&gt;
&lt;br /&gt;
To explore WikEmacs proceed as follows:&lt;br /&gt;
* Search for or visit a page of interest&lt;br /&gt;
* At the end of the page, there is a list of categories&lt;br /&gt;
* Click on individual categories and it will give you a list of all pages that will be of interest to you.&lt;br /&gt;
&lt;br /&gt;
==  What is your comfort level with Emacs? ==&lt;br /&gt;
* [[:Category:Beginner|Beginner]]&lt;br /&gt;
* [[:Category:Intermediate|Intermediate]]&lt;br /&gt;
* [[:Category:Expert|Expert]]&lt;br /&gt;
** Are you a maintainer of a [[:Category:Built-in Package|Built-in Package]]? If you don't find information about your package, please add it. No one else is better than you are to write about it.&lt;br /&gt;
** Have you developed any [[:Category:Third Party Package|Third Party Package]]s? Consider writing about what it is and how to use it.&lt;br /&gt;
* [[:Category:Vim User|Vim User]]&lt;br /&gt;
&lt;br /&gt;
== What do you want to accomplish now? ==&lt;br /&gt;
* [[:Category:Install Or Upgrade|Install Or Upgrade]]&lt;br /&gt;
* [[:Category:Customization|Customize Emacs]]&lt;br /&gt;
* [[Key Bindings|Tweak Key Bindings]]&lt;br /&gt;
* [[:Category:Tutorial|Learn more Emacs (Tutorials)]]&lt;br /&gt;
&lt;br /&gt;
== What do you use Emacs for? ==&lt;br /&gt;
* [[:Category:Text Editing|Text Editing]]&lt;br /&gt;
* [[:Category:Programming|Programming]]&lt;br /&gt;
* [[:Category:Document authoring|Document authoring]]&lt;br /&gt;
* [[:Category:Organizer|Getting Organized]]&lt;br /&gt;
* [[:Category:Email|Emailing]]&lt;br /&gt;
* [[:Category:Chat|Chatting]]&lt;br /&gt;
* [[:Category:Blogging|Blogging]]&lt;br /&gt;
* [[:Category:Browse|Browsing]] &lt;br /&gt;
* [[:Category:Entertainment|Entertainment]]&lt;br /&gt;
* [[:Category:Workflow|Other]]&lt;br /&gt;
&lt;br /&gt;
== How do you involve yourself with the community? ==&lt;br /&gt;
* [[:Category:Emacs User|Emacs User]]&lt;br /&gt;
* [[:Category:Emacs Contributor|Emacs Contributor]]&lt;br /&gt;
* [[:Category:WikEmacs Contributor|WikEmacs Contributor]]&lt;br /&gt;
* [[:Category:User Role|Other]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Wanderlust&amp;diff=3386</id>
		<title>Wanderlust</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Wanderlust&amp;diff=3386"/>
		<updated>2012-09-06T13:00:49Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: moved here a troubleshooting section from the MELPA article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=Wanderlust&lt;br /&gt;
|description=Wanderlust is an e-mail client especially suited to IMAP.&lt;br /&gt;
|source=https://github.com/wanderlust/&lt;br /&gt;
|in_emacs=no&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Wanderlust is an in-Emacs mail reading application intended for use with IMAP. It is preferred by many expert Emacs users because it has by far the best native IMAP support of any Emacs mail reading system, but it is very poorly documented (at least in English) and a challenge for naive users to install and configure.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the Wanderlust home page, at [http://www.gohome.org/wl/], has not been maintained in many years. Development appears to take place almost entirely within various informal github repositories. A full list of packages needed to run Wanderlust includes:&lt;br /&gt;
&lt;br /&gt;
https://github.com/wanderlust/flim&lt;br /&gt;
&lt;br /&gt;
https://github.com/wanderlust/semi&lt;br /&gt;
&lt;br /&gt;
https://github.com/wanderlust/apel&lt;br /&gt;
&lt;br /&gt;
https://github.com/wanderlust/wanderlust&lt;br /&gt;
&lt;br /&gt;
Wanderlust is not currently available in [[ELPA]] but is available in [[El-get]] (though it doesn't seem to be able to checkout the repository).&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
 &lt;br /&gt;
Installation from ELPA seems to be problematic, because of the [[flim]] package. See more at http://gelvaos.blogspot.com/2010/11/emacs-elpa-and-wanderlust.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Email]][[Category:Mail Client]][[Category:Third Party Package]][[Category:Popular Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=MELPA&amp;diff=3385</id>
		<title>MELPA</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=MELPA&amp;diff=3385"/>
		<updated>2012-09-06T12:58:07Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by PuercoPop (talk) to last revision by 173.29.243.191&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MELPA''' (or Milkypostman’s ELPA or Milkypostman’s Experimental Lisp Package Repository if you’re not into the whole brevity thing) is a [[package.el]] repository for development versions of Emacs packages (hot from the repo).&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;
(add-to-list 'package-archives&lt;br /&gt;
             '(&amp;quot;melpa&amp;quot; . &amp;quot;http://melpa.milkbox.net/packages/&amp;quot;) t)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Marmalade]]&lt;br /&gt;
* [[package.el]]&lt;br /&gt;
* [[el-get]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://melpa.milkbox.net/ Project Page]&lt;br /&gt;
* [https://github.com/milkypostman/melpa GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://batsov.com/articles/2012/04/06/melpa-homebrew-emacs-edition/ MELPA - Homebrew (Emacs Edition)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Project Management]][[Category:Convenience]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Marmalade&amp;diff=3384</id>
		<title>Marmalade</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Marmalade&amp;diff=3384"/>
		<updated>2012-09-06T12:56:57Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: /* Project Pages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Marmalade''' is a [[package.el]] repository, supported by the Emacs community. It's best known feature is the ability to submit Emacs packages directly via Marmalade's web UI.&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 'package)&lt;br /&gt;
(add-to-list 'package-archives&lt;br /&gt;
             '(&amp;quot;marmalade&amp;quot; . &amp;quot;http://marmalade-repo.org/packages/&amp;quot;))&lt;br /&gt;
(package-initialize)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[MELPA]]&lt;br /&gt;
* [[package.el]]&lt;br /&gt;
* [[el-get]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
&lt;br /&gt;
* [http://marmalade-repo.org Project Page]&lt;br /&gt;
* [https://github.com/nicferrier/marmalade GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Project Management]][[Category:Convenience]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Installing_Emacs&amp;diff=3379</id>
		<title>Installing Emacs</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Installing_Emacs&amp;diff=3379"/>
		<updated>2012-09-05T10:46:35Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Emacs Releases ==&lt;br /&gt;
&lt;br /&gt;
The latest released version of Emacs is [[:Category:Emacs-24.1|Emacs-24.2]].&lt;br /&gt;
&lt;br /&gt;
== Installing Emacs ==&lt;br /&gt;
&lt;br /&gt;
Emacs is available on all popular [[:Category:Operating System | operating systems]] including [[GNU/Linux]], [[OSX]], [[FreeBSD]] and [[Windows]].  See the respective pages for installation instruction and platform specific customization:&lt;br /&gt;
&lt;br /&gt;
* [[Installing Emacs on OS X]]&lt;br /&gt;
* [[Installing Emacs on GNU/Linux]]&lt;br /&gt;
* [[Installing Emacs on Windows]]&lt;br /&gt;
* [[Installing Emacs on FreeBSD]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Install Or Upgrade‎]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Package.el&amp;diff=3152</id>
		<title>Package.el</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Package.el&amp;diff=3152"/>
		<updated>2012-07-22T12:59:11Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: /* Install package.el on Emacs 23 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=package.el&lt;br /&gt;
|description=Package Manager&lt;br /&gt;
|author=Tom Tromey&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://repo.or.cz/w/emacs.git/blob_plain/HEAD:/lisp/emacs-lisp/package.el&lt;br /&gt;
|in_emacs=24&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
package.el is the built-in package manager in Emacs 24. &lt;br /&gt;
&lt;br /&gt;
== Install package.el on Emacs 23 ==&lt;br /&gt;
&amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; is bundled with Emacs 24, but it’s not bound to Emacs 24. Before it became part of Emacs it was an external package, known as package.el that was tied to repository called ELPA (that stood for Emacs Lisp Package Archive). So even if you’re an Emacs 23 user you can copy the latest version of &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; from [http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el here] and enjoy it.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Put the following snippet of code near the beginning of your Emacs config, since you’ll definitely want packages installed via &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; to be initalized ''before'' you start tweaking them.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(require 'package)&lt;br /&gt;
(package-initialize)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
What &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; basically does is that it connects to a list of package repositories, retrieves the list of the packages there, presents it to you in a interactive fashion and lets you install the packages you like (of course you can also remove the ones you don’t like). &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; understands the dependencies between packages and if one package requires others to run they will be installed automatically (which is really neat).&lt;br /&gt;
&lt;br /&gt;
The magic starts with the command {{Command|package-list-packages}}. At this point you should see something in the lines of this.&lt;br /&gt;
&lt;br /&gt;
You can navigate the list of packages, mark the ones you want to install with the “i” key or the ones you want removed with the “d” key and when you’re done you can press the “x” key to execute the scheduled actions.&lt;br /&gt;
&lt;br /&gt;
Initially &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; didn’t provide the option to update a package, but that should be fixed in recent Emacs builds. According to this [http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00371.html thread] you can even update all of the installed packages by using the “U” key in the packages list view (I guess that a small “u” would update only one package). Unfortunately my build is lacking those capabilities so I cannot comment of their usability.&lt;br /&gt;
&lt;br /&gt;
== How to add additional repository ==&lt;br /&gt;
You’d probably notice that your list of available packages is not particularly long. That’s because the official Emacs 24 package repository has a strict licensing (and source code) requirements to include a package there. Luckily there are a number of community-maintained &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; repos around with much more relaxed requirements. Probably the most popular of them is [http://marmalade-repo.org/ Marmalade], created by [http://nex-3.com/ Nathan Weizenbaum] of Sass and Haml fame. You can include it in your &amp;lt;tt&amp;gt;package-archives&amp;lt;/tt&amp;gt; list like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-to-list 'package-archives '(&amp;quot;marmalade&amp;quot; . &amp;quot;http://marmalade-repo.org/packages/&amp;quot;))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Marmalade provides a web based UI for package upload and search (both quite buggy unfortunately) and the ability to share the maintenance of a package between several people, who’ll be able to upload new version of the package. There’s also a Emacs Lisp Marmalade tool, that allows you to submit packages directly from Emacs.&lt;br /&gt;
&lt;br /&gt;
== How to use it with a custom build ==&lt;br /&gt;
Using the &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; UI is ok if you’re a casual Emacs user, but what if you have a custom Emacs configuration, stored under version control, that you’d like to instantly deploy on any OS/machine (like Emacs Prelude). Here in play comes &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt;’s programmer interface. In [https://github.com/bbatsov/emacs-prelude Emacs Prelude] I use the following code to install a list of required packages automatically on Emacs startup (if necessary):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Comment out if you've already loaded this package...&lt;br /&gt;
(require 'cl)&lt;br /&gt;
&lt;br /&gt;
(defvar my-packages&lt;br /&gt;
  '(ack-and-a-half auctex clojure-mode coffee-mode deft expand-region&lt;br /&gt;
                   gist groovy-mode haml-mode haskell-mode inf-ruby&lt;br /&gt;
                   magit magithub markdown-mode paredit projectile python&lt;br /&gt;
                   sass-mode rainbow-mode scss-mode solarized-theme&lt;br /&gt;
                   volatile-highlights yaml-mode yari zenburn-theme)&lt;br /&gt;
  &amp;quot;A list of packages to ensure are installed at launch.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
(defun my-packages-installed-p ()&lt;br /&gt;
  (loop for p in prelude-packages&lt;br /&gt;
        when (not (package-installed-p p)) do (return nil)&lt;br /&gt;
        finally (return t)))&lt;br /&gt;
&lt;br /&gt;
(unless (my-packages-installed-p)&lt;br /&gt;
  ;; check for new packages (package versions)&lt;br /&gt;
  (package-refresh-contents)&lt;br /&gt;
  ;; install the missing packages&lt;br /&gt;
  (dolist (p prelude-packages)&lt;br /&gt;
    (when (not (package-installed-p p))&lt;br /&gt;
      (package-install p))))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code check if all of the packages in the list are installed and if any of them are not installed if refreshes the local package database (in the case a required package for recently added to the remote repo) and installs them.&lt;br /&gt;
&lt;br /&gt;
== How to publish it to Marmalade ==&lt;br /&gt;
To be able to publish a package to Marmalade (or another repo) it should comform a standardized structure. A single-file package might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;;; sass-mode.el --- Sass major mode&lt;br /&gt;
&lt;br /&gt;
;; Copyright 2007-2010 Nathan Weizenbaum&lt;br /&gt;
&lt;br /&gt;
;; Author: Nathan Weizenbaum &amp;lt;nex342@gmail.com&amp;gt;&lt;br /&gt;
;; URL: http://github.com/nex3/sass-mode&lt;br /&gt;
;; Version: 3.0.20&lt;br /&gt;
;; Package-Requires: ((haml-mode &amp;quot;3.0.20&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
;; Code goes here&lt;br /&gt;
&lt;br /&gt;
;;; sass-mode.el ends here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A multi-file package should have an additional file named&lt;br /&gt;
`&amp;lt;name&amp;gt;-pkg.el` that should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define-package &amp;quot;sass-mode&amp;quot; &amp;quot;3.0.20&amp;quot;&lt;br /&gt;
                &amp;quot;Sass major mode&amp;quot;&lt;br /&gt;
                '((haml-mode &amp;quot;3.0.20&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== package.el Repositories ==&lt;br /&gt;
&lt;br /&gt;
* [[ELPA]]&lt;br /&gt;
* [[MELPA]]&lt;br /&gt;
* [[Marmalade]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://batsov.com/articles/2012/02/19/package-management-in-emacs-the-good-the-bad-and-the-ugly/ Package Management in Emacs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Manager]][[Category:Built-in Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Talk:IELM&amp;diff=3151</id>
		<title>Talk:IELM</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Talk:IELM&amp;diff=3151"/>
		<updated>2012-07-22T12:43:26Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please use [[WikEmacs:Guidelines#Creating new pages]]&lt;br /&gt;
&lt;br /&gt;
Done. [[User:Bozhidar|Bozhidar]] 13:39, 28 March 2012 (EEST)&lt;br /&gt;
&lt;br /&gt;
The previous undo of the spammers devastation was not enough.. unfortunately, I did not see the big problem, before I looked at the history&lt;br /&gt;
and earlier versions carefully.&lt;br /&gt;
Then, I had to undo about 8 changes, including two of my own attempts...&lt;br /&gt;
&lt;br /&gt;
aargh!&lt;br /&gt;
&lt;br /&gt;
Consider making it editable only for &amp;quot;logged in&amp;quot; people.&lt;br /&gt;
Martin&lt;br /&gt;
&lt;br /&gt;
I boosted the spam protection measures seriously after the recent flood of spam. Accidents like this should no longer occur. [[User:Bozhidar|Bozhidar]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Starter_Kits&amp;diff=3051</id>
		<title>Starter Kits</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Starter_Kits&amp;diff=3051"/>
		<updated>2012-06-25T06:04:34Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= External Links =&lt;br /&gt;
* [https://github.com/bbatsov/emacs-prelude Emacs Prelude]&lt;br /&gt;
* [https://github.com/technomancy/emacs-starter-kit Emacs Starter Kit]&lt;br /&gt;
* [https://github.com/dimitri/emacs-kicker Emacs Kicker]&lt;br /&gt;
&lt;br /&gt;
[[Category:Beginner]][[Category:Install Or Upgrade]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Package.el&amp;diff=3050</id>
		<title>Package.el</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Package.el&amp;diff=3050"/>
		<updated>2012-06-25T06:03:59Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=package.el&lt;br /&gt;
|description=Package Manager&lt;br /&gt;
|author=Tom Tromey&lt;br /&gt;
|maintainer=[[FSF]]&lt;br /&gt;
|source=http://repo.or.cz/w/emacs.git/blob_plain/HEAD:/lisp/emacs-lisp/package.el&lt;br /&gt;
|in_emacs=24&lt;br /&gt;
|Development status=active&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
package.el is the built-in package manager in Emacs 24. &lt;br /&gt;
&lt;br /&gt;
== Install package.el on Emacs 23 ==&lt;br /&gt;
&amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; is bundled with Emacs 24, but it’s not bound to Emacs 24. Before it became part of Emacs it was an external package, known as ELPA (I guess that stood for Emacs Lisp Package Manager or something similar). So even if you’re an Emacs 23 user you can copy the latest version of &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; from [http://repo.or.cz/w/emacs.git/blob_plain/1a0a666f941c99882093d7bd08ced15033bc3f0c:/lisp/emacs-lisp/package.el here] and enjoy it.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Put the following snippet of code near the beginning of your Emacs config, since you’ll definitely want packages installed via &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; to be initalized ''before'' you start tweaking them.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(require 'package)&lt;br /&gt;
(package-initialize)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
What &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; basically does is that it connects to a list of package repositories, retrieves the list of the packages there, presents it to you in a interactive fashion and lets you install the packages you like (of course you can also remove the ones you don’t like). &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; understands the dependencies between packages and if one package requires others to run they will be installed automatically (which is really neat).&lt;br /&gt;
&lt;br /&gt;
The magic starts with the command {{Command|package-list-packages}}. At this point you should see something in the lines of this.&lt;br /&gt;
&lt;br /&gt;
You can navigate the list of packages, mark the ones you want to install with the “i” key or the ones you want removed with the “d” key and when you’re done you can press the “x” key to execute the scheduled actions.&lt;br /&gt;
&lt;br /&gt;
Initially &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; didn’t provide the option to update a package, but that should be fixed in recent Emacs builds. According to this [http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00371.html thread] you can even update all of the installed packages by using the “U” key in the packages list view (I guess that a small “u” would update only one package). Unfortunately my build is lacking those capabilities so I cannot comment of their usability.&lt;br /&gt;
&lt;br /&gt;
== How to add additional repository ==&lt;br /&gt;
You’d probably notice that your list of available packages is not particularly long. That’s because the official Emacs 24 package repository has a strict licensing (and source code) requirements to include a package there. Luckily there are a number of community-maintained &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; repos around with much more relaxed requirements. Probably the most popular of them is [http://marmalade-repo.org/ Marmalade], created by [http://nex-3.com/ Nathan Weizenbaum] of Sass and Haml fame. You can include it in your &amp;lt;tt&amp;gt;package-archives&amp;lt;/tt&amp;gt; list like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(add-to-list 'package-archives '(&amp;quot;marmalade&amp;quot; . &amp;quot;http://marmalade-repo.org/packages/&amp;quot;))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Marmalade provides a web based UI for package upload and search (both quite buggy unfortunately) and the ability to share the maintenance of a package between several people, who’ll be able to upload new version of the package. There’s also a Emacs Lisp Marmalade tool, that allows you to submit packages directly from Emacs.&lt;br /&gt;
&lt;br /&gt;
== How to use it with a custom build ==&lt;br /&gt;
Using the &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt; UI is ok if you’re a casual Emacs user, but what if you have a custom Emacs configuration, stored under version control, that you’d like to instantly deploy on any OS/machine (like Emacs Prelude). Here in play comes &amp;lt;tt&amp;gt;package.el&amp;lt;/tt&amp;gt;’s programmer interface. In [https://github.com/bbatsov/emacs-prelude Emacs Prelude] I use the following code to install a list of required packages automatically on Emacs startup (if necessary):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;; Comment out if you've already loaded this package...&lt;br /&gt;
(require 'cl)&lt;br /&gt;
&lt;br /&gt;
(defvar my-packages&lt;br /&gt;
  '(ack-and-a-half auctex clojure-mode coffee-mode deft expand-region&lt;br /&gt;
                   gist groovy-mode haml-mode haskell-mode inf-ruby&lt;br /&gt;
                   magit magithub markdown-mode paredit projectile python&lt;br /&gt;
                   sass-mode rainbow-mode scss-mode solarized-theme&lt;br /&gt;
                   volatile-highlights yaml-mode yari zenburn-theme)&lt;br /&gt;
  &amp;quot;A list of packages to ensure are installed at launch.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
(defun my-packages-installed-p ()&lt;br /&gt;
  (loop for p in prelude-packages&lt;br /&gt;
        when (not (package-installed-p p)) do (return nil)&lt;br /&gt;
        finally (return t)))&lt;br /&gt;
&lt;br /&gt;
(unless (my-packages-installed-p)&lt;br /&gt;
  ;; check for new packages (package versions)&lt;br /&gt;
  (package-refresh-contents)&lt;br /&gt;
  ;; install the missing packages&lt;br /&gt;
  (dolist (p prelude-packages)&lt;br /&gt;
    (when (not (package-installed-p p))&lt;br /&gt;
      (package-install p))))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This code check if all of the packages in the list are installed and if any of them are not installed if refreshes the local package database (in the case a required package for recently added to the remote repo) and installs them.&lt;br /&gt;
&lt;br /&gt;
== How to publish it to Marmalade ==&lt;br /&gt;
To be able to publish a package to Marmalade (or another repo) it should comform a standardized structure. A single-file package might look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
;;; sass-mode.el --- Sass major mode&lt;br /&gt;
&lt;br /&gt;
;; Copyright 2007-2010 Nathan Weizenbaum&lt;br /&gt;
&lt;br /&gt;
;; Author: Nathan Weizenbaum &amp;lt;nex342@gmail.com&amp;gt;&lt;br /&gt;
;; URL: http://github.com/nex3/sass-mode&lt;br /&gt;
;; Version: 3.0.20&lt;br /&gt;
;; Package-Requires: ((haml-mode &amp;quot;3.0.20&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
;; Code goes here&lt;br /&gt;
&lt;br /&gt;
;;; sass-mode.el ends here&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A multi-file package should have an additional file named&lt;br /&gt;
`&amp;lt;name&amp;gt;-pkg.el` that should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(define-package &amp;quot;sass-mode&amp;quot; &amp;quot;3.0.20&amp;quot;&lt;br /&gt;
                &amp;quot;Sass major mode&amp;quot;&lt;br /&gt;
                '((haml-mode &amp;quot;3.0.20&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== package.el Repositories ==&lt;br /&gt;
&lt;br /&gt;
* [[ELPA]]&lt;br /&gt;
* [[MELPA]]&lt;br /&gt;
* [[Marmalade]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [http://batsov.com/articles/2012/02/19/package-management-in-emacs-the-good-the-bad-and-the-ugly/ Package Management in Emacs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Manager]][[Category:Built-in Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=WikEmacs:Guidelines&amp;diff=3049</id>
		<title>WikEmacs:Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=WikEmacs:Guidelines&amp;diff=3049"/>
		<updated>2012-06-25T06:02:58Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''How can we maintain and improve quality of this Wiki?'''&lt;br /&gt;
* Stick to Emacs-24 and Emacs-23.&lt;br /&gt;
* Keep things short and sweet.  Mark things that should stand out in '''bold'''. &lt;br /&gt;
* Use [http://en.wikipedia.org/wiki/Active_voice Active voice]&lt;br /&gt;
* Give tips. Document things that are difficult to find or share your wisdom.&lt;br /&gt;
* Don't reproduce existing documentation. Instead link to them.&lt;br /&gt;
* It's OK to write long tutorial Pages. Use '''Tutorial:Tutorial Namespace''' for it. Assign categories for easily finding the tutorial.&lt;br /&gt;
* If you are a regular blogger, consider donating your articles to this Wiki.&lt;br /&gt;
* For discussions, use the '''Discussion page''' instead of posting to the article pages. Sign your comments using  &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
* We cannot host code extensions and elisp packages here. Use [https://github.com GitHub] or similar code hosting site.&lt;br /&gt;
* {{Note}} this is not a QA site. Emacs questions are better answered at [http://stackoverflow.com/questions/tagged/emacs Stackoverflow site]. However, if you have an answer to a good question or problem, add in the appropriate page.&lt;br /&gt;
* '''Code snippets''' are most welcome. But comment about what precisely the snippet does. Document any limitations as well. &lt;br /&gt;
&lt;br /&gt;
== Mediawiki Help == &lt;br /&gt;
* [http://meta.wikimedia.org/wiki/Help:Wikitext_examples Help with Mediawiki markup]&lt;br /&gt;
&lt;br /&gt;
== Creating new pages ==&lt;br /&gt;
To create a new page, do this:&lt;br /&gt;
# Visit [http://wikemacs.org/w/index.php?title=Template:NewPage&amp;amp;action=edit Template:NewPage] and copy the text area to clipboard. Feel free to modify the template. &lt;br /&gt;
# Goto [[WikEmacs:Scratch Buffer]]&lt;br /&gt;
# Add this &amp;lt;nowiki&amp;gt;[[Test Page]]&amp;lt;/nowiki&amp;gt; and save the scratch buffer.&lt;br /&gt;
# Click on the new Wiki link to create a blank page and paste the contents of clipboard there.&lt;br /&gt;
# Save the newly created page.&lt;br /&gt;
# Now you have a basic template which you can expand upon. Add content to the new page as you please.&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
There are templates defined for referencing ''variables'', ''function'', ''command'', ''keys'', ''manual'' etc.  Use them for uniformity.  See [[:Category:Templates]]. Each template page should describe how to use that template. A few common examples:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;75%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!What it looks like&lt;br /&gt;
!What you type&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;h2&amp;gt;Headline text&amp;lt;/h2&amp;gt;&lt;br /&gt;
| &amp;lt;pre&amp;gt;== Headline text ==&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Manual|emacs|Major-Modes|Major Modes}}&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{Manual|emacs|Major-Modes|Major Modes}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{CommandKeys|C-x C-f|find-file}}&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{CommandKeys|C-x C-f|find-file}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Keys|C-x C-c}}&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{Keys|C-x C-c}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Keys|C-x f|set-fill-column}}&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{Keys|C-x f|set-fill-column}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Command|find-file}} &lt;br /&gt;
| &amp;lt;pre&amp;gt;{{Command|find-file}}&amp;lt;/pre&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| {{CustomizeVariable|c-default-style}} &lt;br /&gt;
| &amp;lt;pre&amp;gt;{{CustomizeVariable|c-default-style}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{Snippet|(global-set-key (kbd &amp;quot;C-c c&amp;quot;) 'org-capture)}}&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{Snippet|(global-set-key (kbd &amp;quot;C-c c&amp;quot;) 'org-capture)}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
Special categories, such as ''Operating system'', ''Emacs releases'', ''Programming languages'', should be used to introduce new categories. See [[Special:Categories]].&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs Contributor]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=WikEmacs:Guidelines&amp;diff=3048</id>
		<title>WikEmacs:Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=WikEmacs:Guidelines&amp;diff=3048"/>
		<updated>2012-06-25T06:01:21Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 58.185.208.69 (talk) to last revision by 188.143.232.12&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Between me and my husband we've owned more MP3 pleayrs over the years than I can count, including Sansas, iRivers, iPods (classic &amp;amp; touch), the Ibiza Rhapsody, etc. But, the last few years I've settled down to one line of pleayrs. Why? Because I was happy to discover how well-designed and fun to use the underappreciated (and widely mocked) Zunes are.&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Guru-mode&amp;diff=3047</id>
		<title>Guru-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Guru-mode&amp;diff=3047"/>
		<updated>2012-06-25T05:59:02Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=guru-mode&lt;br /&gt;
|description=a minor-mode that helps you to use Emacs more effectively&lt;br /&gt;
|author=[[User:Bozhidar | Bozhidar Batsov]]&lt;br /&gt;
|maintainer=[[User:Bozhidar | Bozhidar Batsov]]&lt;br /&gt;
|source=https://github.com/bbatsov/guru-mode&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''guru-mode''' disables some common keybindings and suggests the use of the established Emacs alternatives instead.&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;
(add-to-list 'load-path &amp;quot;/path/to/guru-mode/directory&amp;quot;)&lt;br /&gt;
(require 'guru-mode)&lt;br /&gt;
(guru-mode +1) ;; to enable in all buffers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Prelude]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* [https://github.com/bbatsov/guru-mode GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Convenience]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Troubleshooting&amp;diff=3045</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Troubleshooting&amp;diff=3045"/>
		<updated>2012-06-24T19:47:34Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 131.175.88.93 (talk) to last revision by 23.21.64.122&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Troubleshooting''' tips from long time Emacs users.&lt;br /&gt;
= Locate library file =&lt;br /&gt;
&lt;br /&gt;
; {{Command|locate-library}}&lt;br /&gt;
: Use this to debug [[load-path]] issues. Try {{Command|locate-library RET org RET}} now.&lt;br /&gt;
&lt;br /&gt;
I just got this issue but only on ESXi cluster. I chenagd the das.failuredetectiontime value on 4 cluster (1 full ESXi's and 3 full ESX's) and only the ESXi cluster didn't update the value.&lt;br /&gt;
&lt;br /&gt;
= Looking at Emacs Lisp files =&lt;br /&gt;
&lt;br /&gt;
When installing new packages, you would want to hear some words of wisdom from the author of the library file. &lt;br /&gt;
&lt;br /&gt;
; {{Command|find-library}}&lt;br /&gt;
: Try {{Command|find-library RET mediawiki RET}} to see whether you have installed [[Mediawiki.el]]. If it works, look at the ''Commentary'' section to see the author's notes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Beginner]][[Category:Intermediate]][[Category:Troubleshoot]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=CSS&amp;diff=3044</id>
		<title>CSS</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=CSS&amp;diff=3044"/>
		<updated>2012-06-24T19:47:31Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 94.23.1.28 (talk) to last revision by Francesco&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CSS-mode ==&lt;br /&gt;
&lt;br /&gt;
== Rainbow Mode ==&lt;br /&gt;
Wondering what that HTML color code is in your CSS file? Why not highlight it with its corresponding color? Try out [http://julien.danjou.info/software/rainbow-mode rainbow-mode] to do just that!&lt;br /&gt;
&lt;br /&gt;
[[Category:Markup languages]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Keyboard_macros&amp;diff=3043</id>
		<title>Keyboard macros</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Keyboard_macros&amp;diff=3043"/>
		<updated>2012-06-24T19:47:28Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 213.244.10.184 (talk) to last revision by 94.23.1.28&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Manual|emacs|Basic-Keyboard-Macro|Basic Keyboard Macro}}&lt;br /&gt;
&lt;br /&gt;
'''Keyboard macros''' can be used to automate or repeat tedious editing tasks in Emacs.&lt;br /&gt;
&lt;br /&gt;
==Example usage==&lt;br /&gt;
Consider the standard &amp;lt;code&amp;gt;*scratch*&amp;lt;/code&amp;gt; buffer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;; This buffer is for notes you don't want to save, and for Lisp evaluation.&lt;br /&gt;
;; If you want to create a file, visit that file with C-x C-f,&lt;br /&gt;
;; then enter the text in that file's own buffer.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suppose you want to remove the first occurrence of the letter &amp;quot;a&amp;quot; on every row in that piece of text. You could write a [[regular expression]] to do the job, but let's assume you want to use a keyboard macro this time.&lt;br /&gt;
&lt;br /&gt;
# Make sure [[point]] is at the start of the buffer.&lt;br /&gt;
# Hit &amp;lt;code&amp;gt;C-x (&amp;lt;/code&amp;gt; to start recording your macro. '''Note:''' If you hit &amp;lt;code&amp;gt;C-g&amp;lt;/code&amp;gt; or if an error occurs, your keyboard macro recording will stop.&lt;br /&gt;
# Hit &amp;lt;code&amp;gt;C-s&amp;lt;/code&amp;gt; followed by &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; to find the first &amp;quot;a&amp;quot;. Now, point is right after the first &amp;quot;a&amp;quot; in the text.&lt;br /&gt;
# Hit backspace to delete that &amp;quot;a&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The first occurrence of &amp;quot;a&amp;quot; of the first line has been deleted. Let's move point to the beginning of the next line and then stop recording.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hit &amp;lt;code&amp;gt;C-e C-f&amp;lt;/code&amp;gt; to move point to the beginning of the next line.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hit &amp;lt;code&amp;gt;C-x )&amp;lt;/code&amp;gt; to finish the recording of our macro.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The macro you have just recorded performs the operation of removing the first occurrence of &amp;quot;a&amp;quot; it can find and then moving point to the next line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hit &amp;lt;code&amp;gt;C-x e&amp;lt;/code&amp;gt; once to call that macro.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Continue hitting &amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt; to call it several times. Hit any other key to get out of the macro repetition.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think the exposure looks relaly good with the flash!  I am having the hardest time figuring out what is the &amp;quot;right&amp;quot; exposure using my speedlight also.  I think this looks great and u got great catchlights, no pinlights.  Very sweet post.  :)&lt;br /&gt;
&lt;br /&gt;
==Saving macros==&lt;br /&gt;
{{Manual|emacs|Save-Keyboard-Macro|Save Keyboard Macro}}&lt;br /&gt;
&lt;br /&gt;
Take a look at the Canon Digital Elph series. I pecikd up a 10MP camera for just under $200 back in November from Amazon.com. They've got newer stuff that's better than what I have, though I love my SD770IS.&lt;br /&gt;
&lt;br /&gt;
===Binding to a key===&lt;br /&gt;
To bind a keyboard macro to a key using &amp;lt;code&amp;gt;C-x C-k b&amp;lt;/code&amp;gt;.  To avoid problems caused by overriding existing bindings, the key sequences &amp;lt;code&amp;gt;C-x C-k 0&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;C-x C-k 9&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;C-x C-k A&amp;lt;/code&amp;gt; through &amp;lt;code&amp;gt;C-x C-k Z&amp;lt;/code&amp;gt; are reserved for your own keyboard macro bindings.  You can, however, bind a keyboard macro to whatever you like.&lt;br /&gt;
&lt;br /&gt;
Hi, I just installed this pagkace into Umbraco v4.7. Once I insert the macro into my post I get this error message:                Server Error in  /' Application.A potentially dangerous Request.Path value was detected from the client (&amp;amp;).Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.Web.HttpException: A potentially dangerous Request.Path value was detected from the client (&amp;amp;).Source Error:An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.Stack Trace:                However if I go ahead and save/publish the document everything seems to be working just fine. Is there an issue with v4.7 or do I have bigger issues?&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Evil&amp;diff=3041</id>
		<title>Evil</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Evil&amp;diff=3041"/>
		<updated>2012-06-24T19:46:54Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 94.23.1.28 (talk) to last revision by Kindahero&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Evil''' is an '''e'''xtensible '''vi''' '''l'''ayer for Emacs. It provides Vim features like Visual selection and text objects, and is the successor to the now defunct vimpulse and vim-mode.&lt;br /&gt;
&lt;br /&gt;
=== Quick install ===&lt;br /&gt;
&lt;br /&gt;
Using [[el-get]], Evil can be downloaded and installed with: M-x el-get-install RET evil RET.&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
&lt;br /&gt;
Alternatively, Evil lives in a Git repository. To download Evil, do:&lt;br /&gt;
&lt;br /&gt;
 git clone git://gitorious.org/evil/evil.git&lt;br /&gt;
&lt;br /&gt;
If you don't have Git, just head over to [https://gitorious.org/evil/evil/commits/master Gitorious] and click the ''&amp;quot;Download master as tar.gz&amp;quot;'' link (extract with ##tar -xzf master.tar.gz##).&lt;br /&gt;
&lt;br /&gt;
=== Install ===&lt;br /&gt;
&lt;br /&gt;
Move Evil to ~/.emacs.d/evil (or somewhere else in your ##load-path##). Then add the following lines to ~/.emacs:&lt;br /&gt;
&lt;br /&gt;
 (add-to-list 'load-path &amp;quot;~/.emacs.d/evil&amp;quot;)&lt;br /&gt;
 (require 'evil)&lt;br /&gt;
 (evil-mode 1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Evil requires [UndoTree undo-tree.el] in the load-path for linear undo and undo branches. Otherwise, Evil uses regular Emacs undo.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
A brief [https://gitorious.org/evil/evil/blobs/raw/doc/doc/evil.pdf PDF manual] is available in the /doc subdirectory.&lt;br /&gt;
&lt;br /&gt;
=== Articles ===&lt;br /&gt;
&lt;br /&gt;
* [http://dnquark.com/blog/2012/02/emacs-evil-ecumenicalism/ Emacs Evil Ecumenicalism]&lt;br /&gt;
&lt;br /&gt;
=== Plug-ins ===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/timcharper/evil-surround evil-surround]: Port of Vim's surround script.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cofi/evil-numbers evil-numbers]: Vim-like increment and decrement.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/cofi/evil-leader evil-leader]: Port of Vim's mapleader.&lt;br /&gt;
&lt;br /&gt;
[[Category:Vi User]] [[Category:Vim User]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Installing_Emacs_on_BSD&amp;diff=3040</id>
		<title>Installing Emacs on BSD</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Installing_Emacs_on_BSD&amp;diff=3040"/>
		<updated>2012-06-24T19:46:46Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 177.71.188.156 (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Emacs is available among BSD variants including FreeBSD, NetBSD, OpenBSD and PC-BSD&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
=== Install ===&lt;br /&gt;
&lt;br /&gt;
==== Emacs 23 ====&lt;br /&gt;
&lt;br /&gt;
To install the latest stable version of Emacs, with all the latest features, there are two approaches: using a pre built package or building from the ports.&lt;br /&gt;
&lt;br /&gt;
To fetch and install the package run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# pkg_add -r emacs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the ports:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# cd /usr/ports/editors/emacs&lt;br /&gt;
&lt;br /&gt;
# make install&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Emacs 24 ====&lt;br /&gt;
&lt;br /&gt;
To install the latest development version of Emacs, with all the latest features, there are two approaches: using a pre built package or building from the ports.&lt;br /&gt;
&lt;br /&gt;
To fetch and install the package run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# pkg_add -r emacs-devel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or use the ports:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# cd /usr/ports/editors/emacs-devel&lt;br /&gt;
&lt;br /&gt;
# make install&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Related documentation ===&lt;br /&gt;
[http://www.freebsd.org/doc/en/books/developers-handbook/emacs.html Using Emacs as a Development Environment] from the official FreeBSD project documentation. Some of the config tweaks are a bit dated and might need updating. But overall it's a good starting point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NetBSD ==&lt;br /&gt;
&lt;br /&gt;
== OpenBSD ==&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD]][[Category:Emacs-24]][[Category:Beginner]][[Category:Install Or Upgrade]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Main_Page&amp;diff=3039</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Main_Page&amp;diff=3039"/>
		<updated>2012-06-24T19:46:45Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 94.23.1.28 (talk) to last revision by Kindahero&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WikEmacs''' (pronounced wiki-macs) collects useful resources for working with [[GNU Emacs]]. Think of it as a&lt;br /&gt;
'''next generation, better structured and improved [http://www.emacswiki.org/ Emacs Wiki]''' . &lt;br /&gt;
[[File:Emacs_parts.png|320px|thumb|right|Basic terminology of typical Emacs GUI Frame]]&lt;br /&gt;
&lt;br /&gt;
---------&lt;br /&gt;
'''First time visitors''' can start [[#Explore WikEmacs | exploring WikEmacs]]. We have added lots of useful pages since the launch of WikEmacs. We want to keep you excited and engaged. &lt;br /&gt;
&lt;br /&gt;
-----------&lt;br /&gt;
We need more '''[[:Category:WikEmacs Contributor|WikEmacs Contributor]]s'''.  You can help the following way.&lt;br /&gt;
&lt;br /&gt;
{{Note| First of all, please take a minute to look at the&lt;br /&gt;
[[WikEmacs:Guidelines]] before you start editing.}}&lt;br /&gt;
&lt;br /&gt;
* Priority tasks&lt;br /&gt;
** Migrate content from [http://www.emacswiki.org EmacsWiki]. Please adopt the following approach -''I found this on EmacsWiki which was helpful. But it took me a lot of time to find it. Now that I have found it, I will put it in WikEmacs so that others can benefit from it.''&lt;br /&gt;
&lt;br /&gt;
* Intermediate tasks&lt;br /&gt;
** Provide tutorials or content for the [[:Category:Popular Package|Popular Packages]] or [[:Category:Built-in Package|Built-in Packages]].&lt;br /&gt;
** Add more content to [[Special:ShortPages]]&lt;br /&gt;
** Document or add more [[:Category:Third Party Package|Third Party Package]]s&lt;br /&gt;
&lt;br /&gt;
* Other tasks&lt;br /&gt;
** Copy edit [[Special:RecentChanges]] or be a moral police&lt;br /&gt;
** Add more members to various [[Special:Categories]]&lt;br /&gt;
** Categorize one of these pages [[Special:UncategorizedPages]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Emacs News'''&lt;br /&gt;
&lt;br /&gt;
The latest stable release of Emacs is [[GNU Emacs 24|Emacs-24]].&lt;br /&gt;
&lt;br /&gt;
Emacs is available on all popular [[:Category:Install Or Upgrade| Operating Systems]] including [[Installing Emacs on GNU/Linux | GNU/Linux]], [[Installing Emacs on BSD |BSD]], [[Installing Emacs on OS X | OS X]] and [[Installing Emacs on Windows| Windows]].  It supports a variety of [[:Category:Programming languages|programming languages]].&lt;br /&gt;
&lt;br /&gt;
= Explore WikEmacs =&lt;br /&gt;
&lt;br /&gt;
To explore WikEmacs proceed as follows:&lt;br /&gt;
* Search for or visit a page of interest&lt;br /&gt;
* At the end of the page, there is a list of categories&lt;br /&gt;
* Click on individual categories and it will give you a list of all pages that will be of interest to you.&lt;br /&gt;
&lt;br /&gt;
==  What is your comfort level with Emacs? ==&lt;br /&gt;
* [[:Category:Beginner|Beginner]]&lt;br /&gt;
* [[:Category:Intermediate|Intermediate]]&lt;br /&gt;
* [[:Category:Expert|Expert]]&lt;br /&gt;
** Are you a maintainer of a [[:Category:Built-in Package|Built-in Package]]? If you don't find information about your package, please add it. No one else is better than you are to write about it.&lt;br /&gt;
** Have you developed any [[:Category:Third Party Package|Third Party Package]]s? Consider writing about what it is and how to use it.&lt;br /&gt;
* [[:Category:Vim User|Vim User]]&lt;br /&gt;
* [[:Category:User Level|Other]]&lt;br /&gt;
&lt;br /&gt;
== What do you want to accomplish now? ==&lt;br /&gt;
* [[:Category:Install Or Upgrade|Install Or Upgrade]]&lt;br /&gt;
* [[:Category:Customization|Customize Emacs]]&lt;br /&gt;
* [[Key Bindings|Tweak Key Bindings]]&lt;br /&gt;
* [[:Category:Tutorial|Learn more Emacs (Tutorials)]]&lt;br /&gt;
&lt;br /&gt;
== What do you use Emacs for? ==&lt;br /&gt;
* [[:Category:Text Editing|Text Editing]]&lt;br /&gt;
* [[:Category:Programming|Programming]]&lt;br /&gt;
* [[:Category:Document authoring|Document authoring]]&lt;br /&gt;
* [[:Category:Organizer|Getting Organized]]&lt;br /&gt;
* [[:Category:Email|Emailing]]&lt;br /&gt;
* [[:Category:Chat|Chatting]]&lt;br /&gt;
* [[:Category:Blogging|Blogging]]&lt;br /&gt;
* [[:Category:Browse|Browsing]] &lt;br /&gt;
* [[:Category:Workflow|Other]]&lt;br /&gt;
&lt;br /&gt;
== How do you involve yourself with the community? ==&lt;br /&gt;
* [[:Category:Emacs User]]&lt;br /&gt;
* [[:Category:Emacs Contributor]]&lt;br /&gt;
* [[:Category:WikEmacs Contributor]]&lt;br /&gt;
* [[:Category:User Role|Other]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:WikEmacs]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=W3m-el&amp;diff=3038</id>
		<title>W3m-el</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=W3m-el&amp;diff=3038"/>
		<updated>2012-06-24T19:46:44Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 94.23.1.28 (talk) to last revision by 188.143.232.12&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Consider Emacs: it is extremely muaoldr and extremely extensible by virtue of it’s embedded Lisp interpreter. This is a strange thing to say in a paragraph talking about the Unix Philosophy, since Emacs comes from a completely different culture (MIT/ITS/Lisp vs Bell/PDP/C) and is virtually the antithesis of the Unix Way (everything in one process, communicating by function calls with rich data types).I love Emacs as much as anybody, but I wouldn't claim it has anything to do with Unix.  We even had a funny name for the Unix port of Emacs ( Gosmacs ) way back when that wasn't the common place to run it!P:  Have you ever tried building a medium-large-scale application (say, a project with 50-60 classes) with emacs and gcc? I’m sure it’s possible, with persistence  Yes, I'm working on a large system right now   not in C, but it has over 600 classes, and I don't know what an IDE could do for me that Emacs can't.  find-tag is just as fast with 600 classes as with 6.  Macros make O(n) editing tasks into O(1) editing tasks on any size project.What specific feature of an IDE helps you here?  Everything I can think of that IDEs brag about, I do in Emacs every day.&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Emacs_Terminology&amp;diff=3037</id>
		<title>Emacs Terminology</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Emacs_Terminology&amp;diff=3037"/>
		<updated>2012-06-24T19:46:12Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 97.88.153.202 (talk) to last revision by Kindahero&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Buffer ==&lt;br /&gt;
[[File:Emacs_parts.png|320px|thumb|right|different color boxes shows different parts of emacs frame]]&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;
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>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Template:Documentation/end_box2&amp;diff=3036</id>
		<title>Template:Documentation/end box2</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Template:Documentation/end_box2&amp;diff=3036"/>
		<updated>2012-06-24T19:46:11Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 88.127.240.128 (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{documentation/end box&lt;br /&gt;
| preload = {{{preload|}}}   &amp;lt;!--Allow custom preloads--&amp;gt;&lt;br /&gt;
| content = {{{content|}}}&lt;br /&gt;
| link box = {{{link box|}}}   &amp;lt;!--So &amp;quot;link box=off&amp;quot; works--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| docpage = &lt;br /&gt;
  {{#if: {{{1|}}}&lt;br /&gt;
  | {{{1|}}}&lt;br /&gt;
  | {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc&lt;br /&gt;
  }}&lt;br /&gt;
| doc exist = &lt;br /&gt;
  {{#ifexist: &lt;br /&gt;
    {{#if: {{{1|}}}&lt;br /&gt;
    | {{{1|}}}   &amp;lt;!--Other docname fed--&amp;gt;&lt;br /&gt;
    | {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc&lt;br /&gt;
    }}&lt;br /&gt;
  | yes&lt;br /&gt;
  }}&lt;br /&gt;
| docname fed =&lt;br /&gt;
  {{#if: {{{1|}}}&lt;br /&gt;
  | yes&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
| sandbox = &lt;br /&gt;
  {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/sandbox&lt;br /&gt;
| testcases = &lt;br /&gt;
  {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/testcases&lt;br /&gt;
&lt;br /&gt;
| template page = &lt;br /&gt;
  {{NAMESPACE}}:{{{template page|{{PAGENAME}}}}}&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{pp-template}}&lt;br /&gt;
&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Emacs_Lisp_Cookbook&amp;diff=3035</id>
		<title>Emacs Lisp Cookbook</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Emacs_Lisp_Cookbook&amp;diff=3035"/>
		<updated>2012-06-24T19:44:48Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 174.137.184.37 (talk) to last revision by 88.55.116.18&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains snippets of code that demonstrate basic [[Emacs Lisp]]&lt;br /&gt;
programming operations in the spirit of O'Reilly's Cookbook&lt;br /&gt;
series of books. For every task addressed, a worked-out solution&lt;br /&gt;
is presented as a short, focused, directly usable piece of code.&lt;br /&gt;
&lt;br /&gt;
All this stuff can be found elsewhere, but it is scattered about in&lt;br /&gt;
libraries, manuals, etc.  It would be helpful to have it here in one&lt;br /&gt;
spot.&lt;br /&gt;
&lt;br /&gt;
These recipes should be pastable into the '''*scratch*''' buffer so that&lt;br /&gt;
users can hit '''C-j''' and evaluate them step by step.&lt;br /&gt;
&lt;br /&gt;
== Strings ==&lt;br /&gt;
&lt;br /&gt;
The empty string (zero-length string, null string, ...):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(zerop (string-match &amp;quot;&amp;quot; &amp;quot;&amp;quot;)) ;; O(n)&lt;br /&gt;
==&amp;gt; t&lt;br /&gt;
&lt;br /&gt;
(string-equal &amp;quot;&amp;quot; &amp;quot;&amp;quot;) ;; O(n)?&lt;br /&gt;
==&amp;gt; t&lt;br /&gt;
&lt;br /&gt;
(equal &amp;quot;&amp;quot; &amp;quot;&amp;quot;) ;; O(n)?&lt;br /&gt;
==&amp;gt; t&lt;br /&gt;
&lt;br /&gt;
(zerop (length &amp;quot;&amp;quot;)) ;; O(1)&lt;br /&gt;
==&amp;gt; t&lt;br /&gt;
&lt;br /&gt;
(eq &amp;quot;&amp;quot; &amp;quot;&amp;quot;) ;; O(1)&lt;br /&gt;
==&amp;gt; t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As a space and performance optimization, Emacs keeps an intern-ed copy&lt;br /&gt;
of the empty string as a single object&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(eq &amp;quot;&amp;quot; (purecopy &amp;quot;&amp;quot;))&lt;br /&gt;
==&amp;gt; t&lt;br /&gt;
&lt;br /&gt;
(eq &amp;quot;&amp;quot; (propertize &amp;quot;&amp;quot; 'face 'italic))&lt;br /&gt;
==&amp;gt; t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Strings vs buffer content ===&lt;br /&gt;
&lt;br /&gt;
While it is quite common in other programming languages to work on&lt;br /&gt;
strings contained in variables in Emacs it is even more idiomatic to&lt;br /&gt;
work on strings in buffers. That's why the following contains examples&lt;br /&gt;
of both.&lt;br /&gt;
&lt;br /&gt;
Just found in my email's sent item. Nicolas  is the head of IT of UK office:=================================Re : Qubee Service in BangladeshDear Nicolas Ruelle:Greeting!I would be glad if you take some of your time and go thugroh my email. This is regards to the internet service you are providing in Bangladesh. Since I failed to get the contact email address of head of IT or some upper management of Qubee Bangladesh I had no choice but take this opportunity to write you few words of mine.In order for me to work to my remote office in Canada I needed a true reliable consumer/business high speed internet which I did not find until I learned about Qubee's WiMax as I believe wireless is the reliable link among others when it comes to Bangladesh.Incident 1:Since I started the Qubee service on 2nd week of January with 512kbs it was satisfactory with the speed accept for the VPN issue that started to occur from the day one. I was able to dial in the VPN and connect but was not able to communicate with any of the servers within the LAN, I had done some checks with other ISPs and found no issues which satisfied me that it was either the WiMax Router/Modem or the ISP's router. I called the customer care number wanted to speak to someone from the technical support. Customer care asked me provide her with the problem and so did I. Unfortunately the individual had no clear picture about VPN but asked me to check download speed, radio's parameter, and all the basic things that not related to the issue I had specified. At the end I had to introduce myself as an advance user and a technical person and asked her if I could speak to someone from the technical support. She created ticket for it and informed me that someone will get back to me soon. 36 hours past no one contacted me and I had to call the customer care number to follow up with my ticket. Few hours later I had a phone call from some individual and I had to describe the issue and I was asked to check the speed and other non-related VPN checks. It was frustrating. I beged to speak to someone who is familiar with the VPN and its usage. Next day I had a phone call from the customer care and told me that there was no issues from Qubee end but the VPN provider or my PC so I had to fight against the customer care's word. Few days later I received a call from Qubee and asking for my VPN credential for them to test from their office which surprised me big time. I refused and offered myself with my laptop at Qubee's office. I went there to prove that it is the Qubee not the VPN provider by connecting via other ISP's Edge Modem. They started tracing finally and at a point I had to ask them to test my laptop with a public IP assigned and it went successful. The issue was resolved by assigning a public IP address as all the Qubee modems are assigned with private 10.11. network.Incident 2:A week ago around 7 PM local time my internet link went down all of sudden. After investing I found it was about 70-90% packet loss to some hosts including Google and Qubee's local DNS server. I called the customer care number after my further investigation to make sure my end was good. The customer care individual wanted to me access my PC to troubleshoot and take some reports on the modem. Unfortunately I was unable to explain to her that it was not possible for her get into PC due to network issue. I was surprised that she claimed to be technical without knowing about ping utility and packet loss terms. She also did not have idea about pinging between their DNS name and my end or how it works. I requested to talk to someone from technical team,  we have to follow our procedure and some will visit your premises tomorrow  , she replied. I knew that the issue may recover next day or later by itself but I needed support at that particular time as I was in the middle of my regular remote work. At the end I had to forget about hoping and use my backup internet (real slow) to report the office about my unavailability for that evening (imagine if I had no backup internet).Next morning everything was resolved by itself, I suspect there were some issues within the base station during the incident period. I had a visitor from Qubee's third party support to check my modem and some of the numbers of it after 3 days. He found nothing or could not do anything but took some snapshots with him. Note: issue resolved by it self. Imagine you were down for three days and no followups were made. Next day I had another phone call from Qubee's third party contractor to schedule a time to visit my place regarding the ticket  Download/upload Issue . Note the ticket description as I specifically asked her to put packet loss somewhere in the ticket. I had to tell him everything was fine, no issues.Summary:I would like Qubee to put extra attention to be a modern and standard internet service provider in Bangladesh. As a subscriber I would like to see the following in Qubee.    * Valuing customers by listening and understanding their specific problems and the needs (should be one them on the top)    * A 24/7 true technical support team with basic troubleshooting skills set.    * An escalation procedure should be implemented as well so customers are in touch in time (no 3 days waiting periods).    * Understanding the terms Customer Care and Technical Support and implementation of it.    * Response time and proper follow up manner.    * Downtime notifications in advance    * Responding emails with their inquiries. (I never received one)    * Plug-n-play account activation system, where customer will be able to activate their unit on their own after purchasing the box from the outlet so installation engineer is required to visit the customer premises.Thank you!================Reply received after 30 minutes:================Dear Sayeed,Thank you very much for this valuable input. I am forwarding it immediately to the appropriate managers at Qubee Bangladesh: the head of customer care and the head of IT.Best regards,Nicolas Ruelle============I believe it never helped.&lt;br /&gt;
&lt;br /&gt;
=== Processing characters ===&lt;br /&gt;
&lt;br /&gt;
Reversing a string:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(string-to-list &amp;quot;foo&amp;quot;)&lt;br /&gt;
==&amp;gt; (102 111 111)&lt;br /&gt;
(reverse (string-to-list &amp;quot;foo&amp;quot;))&lt;br /&gt;
==&amp;gt; (111 111 102)&lt;br /&gt;
(apply 'string (reverse (string-to-list &amp;quot;foo&amp;quot;)))&lt;br /&gt;
==&amp;gt; &amp;quot;oof&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See CharacterProcessing and StringModification. See [[tr]] for an example of you sometimes need to mix strings and characters.&lt;br /&gt;
&lt;br /&gt;
Looking at characters in buffers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(with-temp-buffer&lt;br /&gt;
  (insert &amp;quot;abcdefg&amp;quot;)&lt;br /&gt;
  (goto-char (point-min))&lt;br /&gt;
  (while (not (= (char-after) ?b))&lt;br /&gt;
    (forward-char))&lt;br /&gt;
  (point))&lt;br /&gt;
==&amp;gt; 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Trim whitespace ===&lt;br /&gt;
&lt;br /&gt;
Trim whitespace from the end of a string:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(setq test-str &amp;quot;abcdefg  &amp;quot;)&lt;br /&gt;
(when (string-match &amp;quot;[ \t]*$&amp;quot; test-str)&lt;br /&gt;
  (message (concat &amp;quot;[&amp;quot; (replace-match &amp;quot;&amp;quot; nil nil test-str) &amp;quot;]&amp;quot;)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Trim whitespace from a string with a Perl-like chomp function:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(defun chomp (str)&lt;br /&gt;
  &amp;quot;Chomp leading and tailing whitespace from STR.&amp;quot;&lt;br /&gt;
  (while (string-match &amp;quot;\\`\n+\\|^\\s-+\\|\\s-+$\\|\n+\\'&amp;quot;&lt;br /&gt;
                       str)&lt;br /&gt;
    (setq str (replace-match &amp;quot;&amp;quot; t t str)))&lt;br /&gt;
  str)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Splitting strings ===&lt;br /&gt;
&lt;br /&gt;
The 'split-string' function is defined in 'subr.el' as&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(defun split-string (string &amp;amp;optional separators omit-nulls)&lt;br /&gt;
 ...)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where 'separators' is a regular expression describing where to split the string. 'separators' defaults to white-space characters (spaces, form feeds, tabs, newlines, carriage returns, and vertical tabs). If 'omit-nulls' is set as 't' then zero-length strings are deleted from output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(split-string &amp;quot;1 thing 2 say 3 words 4 you&amp;quot; &amp;quot;[1-9]&amp;quot;)&lt;br /&gt;
==&amp;gt; (&amp;quot;&amp;quot; &amp;quot; thing &amp;quot; &amp;quot; say &amp;quot; &amp;quot; words &amp;quot; &amp;quot; you&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Omitting nulls:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(split-string &amp;quot;1 thing 2 say 3 words 4 you&amp;quot; &amp;quot;[1-9]&amp;quot; t)&lt;br /&gt;
(&amp;quot; thing &amp;quot; &amp;quot; say &amp;quot; &amp;quot; words &amp;quot; &amp;quot; you&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Joining strings ===&lt;br /&gt;
&lt;br /&gt;
Use `mapconcat' to join a list into a string using a separator (&amp;quot;glue&amp;quot;) between elements in the string.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(mapconcat 'identity '(&amp;quot;&amp;quot; &amp;quot;home&amp;quot; &amp;quot;alex &amp;quot; &amp;quot;elisp&amp;quot; &amp;quot;erc&amp;quot;) &amp;quot;/&amp;quot;)&lt;br /&gt;
==&amp;gt; &amp;quot;/home/alex /elisp/erc&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Serialization ===&lt;br /&gt;
&lt;br /&gt;
The basic idea is to convert forms to strings with `prin1-to-string' and convert it back from a string with `read'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(length (read (prin1-to-string (make-list 1000000 '(x)))))&lt;br /&gt;
==&amp;gt; 1000000&lt;br /&gt;
&lt;br /&gt;
(read (prin1-to-string &amp;quot;Hello World!&amp;quot;))&lt;br /&gt;
==&amp;gt; &amp;quot;Hello World!&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This only works in the simplest cases.  Unfortunately, this doesn't work for all Emacs data types for programming or the editor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(read (prin1-to-string (make-hash-table))) ;; Error before Emacs 23.&lt;br /&gt;
==&amp;gt; #s(hash-table size 65 test eql rehash-size 1.5 [...] data ())&lt;br /&gt;
&lt;br /&gt;
(read (prin1-to-string (current-buffer)))&lt;br /&gt;
==&amp;gt; Lisp error: (invalid-read-syntax &amp;quot;#&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Formatting ===&lt;br /&gt;
&lt;br /&gt;
== Killing text ==&lt;br /&gt;
&lt;br /&gt;
As the Emacs Lisp Manual says, &amp;quot;Most of the kill commands are primarily for&lt;br /&gt;
interactive use [...]  When you need to delete text for internal&lt;br /&gt;
purposes within a Lisp function, you should normally use deletion&lt;br /&gt;
functions, so as not to disturb the kill ring contents.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The following mimic the `kill-' commands but without disturbing the kill ring.&lt;br /&gt;
&lt;br /&gt;
=== Delete region ===&lt;br /&gt;
&lt;br /&gt;
The Lisp equivalent of `kill-region' (`C-w') but without kill ring side effects::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (region-beginning) (region-end))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                 &lt;br /&gt;
&lt;br /&gt;
According to the ElispManual, &amp;quot;Few programs need to use the&lt;br /&gt;
`region-beginning' and `region-end' functions.&amp;quot;  This is because&lt;br /&gt;
Lisp code should not rely on nor &amp;quot;alter the mark unless altering&lt;br /&gt;
the mark is part of the user-level functionality of the&lt;br /&gt;
command.  (And, in that case, this effect should be documented.)&lt;br /&gt;
To remember a location for internal use in the Lisp program,&lt;br /&gt;
store it in a Lisp variable.  For example: [...]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(let ((beg (point)))&lt;br /&gt;
  (forward-line 1)&lt;br /&gt;
  (delete-region beg (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete line ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of `kill-line' (`C-k') but without kill ring side effects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(let ((beg (point)))&lt;br /&gt;
  (forward-line 1)&lt;br /&gt;
  (forward-char -1)&lt;br /&gt;
  (delete-region beg (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, replacing the `let' with `save-excursion'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (point)&lt;br /&gt;
               (save-excursion&lt;br /&gt;
                 (forward-line 1)&lt;br /&gt;
                 (forward-char -1)&lt;br /&gt;
                 (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                   &lt;br /&gt;
&lt;br /&gt;
Or simplest of all,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (point) (line-end-position))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
The examples with `forward-line' are shown because the paradigm is used later, see below.&lt;br /&gt;
&lt;br /&gt;
=== Delete line backwards ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of killing the line backwards (`C-0 C-k') but without kill ring side effects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(let ((beg (point)))&lt;br /&gt;
  (forward-line 0)&lt;br /&gt;
  (delete-region (point) beg))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
Alternatively, replacing the `let' with `save-excursion'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (save-excursion&lt;br /&gt;
                 (forward-line 0)&lt;br /&gt;
                 (point))&lt;br /&gt;
               (point))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                 &lt;br /&gt;
&lt;br /&gt;
Or simplest of all,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (line-beginning-position) (point))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete line to next line  ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of killing the line and the newline (`C-1 C-k') but without kill ring side effects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(let ((beg (point)))&lt;br /&gt;
  (forward-line 1)&lt;br /&gt;
  (delete-region beg (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
Alternatively, replacing the `let' with `save-excursion'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (point)&lt;br /&gt;
               (save-excursion&lt;br /&gt;
                 (forward-line 1)&lt;br /&gt;
                 (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                   &lt;br /&gt;
&lt;br /&gt;
=== Delete whole line ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of `kill-whole-line' (`C-S-DEL') but without kill ring side effects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(let ((beg (progn (forward-line 0)&lt;br /&gt;
                  (point))))&lt;br /&gt;
  (forward-line 1)&lt;br /&gt;
  (delete-region beg (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
Alternatively, replacing the `let' with `save-excursion'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (save-excursion&lt;br /&gt;
                 (forward-line 0)&lt;br /&gt;
                 (point))&lt;br /&gt;
               (save-excursion&lt;br /&gt;
                 (forward-line 1)&lt;br /&gt;
                 (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                   &lt;br /&gt;
&lt;br /&gt;
Or simplest of all,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (line-beginning-position) (line-end-position))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
=== Delete word ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of `kill-word' (`M-d') but without kill ring side effects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(let ((beg (point)))&lt;br /&gt;
  (forward-word 1)&lt;br /&gt;
  (delete-region beg (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
Alternatively, replacing the `let' with `save-excursion'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(delete-region (point)&lt;br /&gt;
               (save-excursion&lt;br /&gt;
                 (forward-word 1)&lt;br /&gt;
                 (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                   &lt;br /&gt;
&lt;br /&gt;
=== Delete sentence ===&lt;br /&gt;
&lt;br /&gt;
The equivalent of `kill-sentence' (`M-k') but without kill ring side effects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(let ((beg (point)))&lt;br /&gt;
  (forward-sentence 1)&lt;br /&gt;
  (delete-region beg (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
Alternatively, replacing the `let' with `save-excursion'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (delete-region (point)&lt;br /&gt;
                 (save-excursion&lt;br /&gt;
                   (forward-sentence 1)&lt;br /&gt;
                   (point)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
                   &lt;br /&gt;
Забавно!недавно был очень похожий случай.есть функция:string addsign(char sign, const srnitg &amp;amp; s){1) return sign+s; // так нельзя2) return srnitg(s1)+s; //тоже нельзя3) return srnitg(s1, 1)+s;// только так можно... но блин не сразу допетриваешь }Решил это сам проверить, на компиляторе gcc 3.4.2.вот такая программулинка:#include &amp;lt;string&amp;gt;#include &amp;lt;stdio.h&amp;gt;using namespace std;string addsign(char s1, const srnitg &amp;amp; s){//1)return s1+s; // так нельзя//2)return srnitg(s1)+s; //тоже нельзя//3)return srnitg(s1, 1)+s;// только так можно... но блин не сразу допетриваешь//4)return srnitg(&amp;amp;s1, 1)+s;}int main(int n, char **args){    srnitg text = &amp;quot;1.9876&amp;quot;;    srnitg res = addsign('-', text);    puts(res.c_str());    return 0;}выдала мне срвсем другое:первый вариант (как &amp;quot;нельзя&amp;quot;) выдал правильный результат: -1.9876, второй вариант - ошибку компиляции, а третий(который &amp;quot;только так и можно&amp;quot;) дал нечто невразумительное - кучу смеющихся рожиц и в конце-число 1.9876. Мне даже непонятно, как у автора сообщения получился нормальный результат.Последний (4-ый, &amp;quot;мой&amp;quot; вариант) дал тоже верный результат: -1.9876&lt;br /&gt;
&lt;br /&gt;
== Dates and times ==&lt;br /&gt;
&lt;br /&gt;
=== Get today's date ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(format-time-string &amp;quot;%d %B %Y&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(eshell/date)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I discovered Emacs in '97 when I was doing C++ depnmovleet for BellSouth (the Sun depnmovleet tools had great integration with either vi, Emacs or XEmacs editors). I'd been a hardcore vi user since 1990 (still am), but I could adapt Emacs (actually, for some reason I opted for XEmacs at the time   can't remember why   maybe it had better fonts) better for the job at hand. Syntax highlighting   check (vi never had this   it only arrived with vim), split buffers (top for the .h, bottom for the .cpp)   check, tab completion for finding files   check, nice macro record/playback features   check, nice search/replace   check,control behavior of tab key   check, auto replace tabs with 4 spaces check. So, after a while you can imagine I crafted a pretty customized/personal .emacs file. I even continued to use emacs for a while after switching to Java in 2000 (it wasn't until Eclipse 2.0 before I switched to an IDE and left Emacs behind).Then I moved on, and for some reason the .emacs file got left behind. Shame really   I haven't really used Emacs since   it's not the same without my .emacs file   and I don't have the time or inclination to re-create it.&lt;br /&gt;
&lt;br /&gt;
=== Conversions ===&lt;br /&gt;
&lt;br /&gt;
Read a date from a string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (let ((time (date-to-time &amp;quot;Tue, 27-Sep-83 12:35:59 EST&amp;quot;)))&lt;br /&gt;
    (set-time-zone-rule t) ;; Use Universal time.&lt;br /&gt;
    (prog1 (format-time-string &amp;quot;%Y-%m-%d %T UTC&amp;quot; time)&lt;br /&gt;
      (set-time-zone-rule nil))) ;; Reset to default time zone.&lt;br /&gt;
  ==&amp;gt; &amp;quot;1983-09-27 17:35:59 UTC&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Decode a time object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (decode-time (date-to-time &amp;quot;Tue, 27-Sep-83 12:35:59 EST&amp;quot;))&lt;br /&gt;
  ==&amp;gt; (59 35 13 27 9 1983 2 t -14400)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Get the seconds from the unix epoch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (let ((time (date-to-time &amp;quot;13 Feb 2009 23:31:30 UTC&amp;quot;)))&lt;br /&gt;
    (float-time time))&lt;br /&gt;
  ==&amp;gt; 1234585890.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Find the date for seconds from the unix epoch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (format-time-string &amp;quot;%Y-%m-%d %T UTC&amp;quot; (seconds-to-time 1234585890))&lt;br /&gt;
  ==&amp;gt; &amp;quot;2009-02-13 23:31:30 UTC&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Find the date 30 seconds in the future.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (format-time-string &amp;quot;%Y-%m-%d %T UTC&amp;quot; (time-add (current-time)&lt;br /&gt;
                                                  (seconds-to-time 30)))&lt;br /&gt;
  ==&amp;gt; &amp;quot;2012-02-13 10:07:11 UTC&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Formatting elapsed time in years, days, hours, minutes and seconds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (format-seconds &amp;quot;%Y %D %h:%m:%s&amp;quot; (1- (* 367 24 3600)))&lt;br /&gt;
  ==&amp;gt; &amp;quot;1 year 1 day 23:59:59&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Find the days between two dates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (let ((days1 (time-to-days (date-to-time &amp;quot;Tue, 27-Sep-83 12:35:59 EST&amp;quot;)))&lt;br /&gt;
        (days2 (time-to-days (date-to-time &amp;quot;2009-02-13 23:31:30 UTC&amp;quot;))))&lt;br /&gt;
    (- days2 days1))&lt;br /&gt;
  ==&amp;gt; 9271&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Getting the day in the year.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (time-to-day-in-year (current-time))&lt;br /&gt;
  ==&amp;gt; 44&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Build a date based on the day of the year.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (format-time-string &amp;quot;%j&amp;quot;&lt;br /&gt;
                      (encode-time 0 0 0 44 1 2012))&lt;br /&gt;
  ==&amp;gt; &amp;quot;044&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Timers ===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
Its funny that your example uses std::string beaucse it has the solution you're looking for.What you're trying to do is initialize a class member before initializing the base class, and you found that you can't. The typical way to get around this is to abandon hope of extending Foo and implement the wrapper in terms of Foo. (has-a vs. is-a) This solution has the annoyance of you needing to redeclare each and every method you want to use and then forwarding those calls to Foo, and you won't be able to use a FooWrapper in place of a Foo as well, meaning you may need to change a ton of references in your code. However, all you have to do is have FooWrapper expose its underlying Foo and you're good. (kinda like what string::c_str() does)Check out your copy of  Effective C++.  From the TOC I think item 40 discusses this.&lt;br /&gt;
&lt;br /&gt;
== Sequences ==&lt;br /&gt;
&lt;br /&gt;
Datatypes used to represent sequences of things:&lt;br /&gt;
&lt;br /&gt;
     _____________________________________________&lt;br /&gt;
    |                                             |&lt;br /&gt;
    |          Sequence                           |&lt;br /&gt;
    |  ______   ________________________________  |&lt;br /&gt;
    | |      | |                                | |&lt;br /&gt;
    | | List | |             Array              | |&lt;br /&gt;
    | |      | |    ________       ________     | |&lt;br /&gt;
    | |______| |   |        |     |        |    | |&lt;br /&gt;
    |          |   | Vector |     | String |    | |&lt;br /&gt;
    |          |   |________|     |________|    | |&lt;br /&gt;
    |          |  ____________   _____________  | |&lt;br /&gt;
    |          | |            | |             | | |&lt;br /&gt;
    |          | | Char-table | | Bool-vector | | |&lt;br /&gt;
    |          | |____________| |_____________| | |&lt;br /&gt;
    |          |________________________________| |&lt;br /&gt;
    |_____________________________________________|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lists ===&lt;br /&gt;
&lt;br /&gt;
List basics are explained on ListStructure.&lt;br /&gt;
Lists can shrink and grow, but access to elements towards the end of the list is slow if the list is long.&lt;br /&gt;
&lt;br /&gt;
Use `cons' to append a new element to the front of a list.&lt;br /&gt;
Use `nth' to access an element of the list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let ((words '(&amp;quot;fight&amp;quot; &amp;quot;foo&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;)))&lt;br /&gt;
      (when (string= &amp;quot;foo&amp;quot; (nth 1 words))&lt;br /&gt;
        (setq words (cons &amp;quot;bar&amp;quot; words)))&lt;br /&gt;
      words)&lt;br /&gt;
    ==&amp;gt; (&amp;quot;bar&amp;quot; &amp;quot;fight&amp;quot; &amp;quot;foo&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
See ListModification for more ways of changing a list.&lt;br /&gt;
&lt;br /&gt;
Iteration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let ((result))&lt;br /&gt;
      (dolist (word '(&amp;quot;fight&amp;quot; &amp;quot;foo&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;))&lt;br /&gt;
        (when (string-match &amp;quot;o&amp;quot; word)&lt;br /&gt;
          (setq result (cons word result))))&lt;br /&gt;
      (nreverse result))&lt;br /&gt;
    ==&amp;gt; (&amp;quot;foo&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Note how `cons' adds an element to the front of the list,&lt;br /&gt;
so that usually the list has to be reversed after the loop.&lt;br /&gt;
`nreverse' is particularly efficient because it does this&lt;br /&gt;
destructively by swiveling pointers around. See&lt;br /&gt;
DestructiveOperations for more about this.&lt;br /&gt;
&lt;br /&gt;
Copying:&lt;br /&gt;
&lt;br /&gt;
Use `copy-sequence' to make a copy of a list that won't change the&lt;br /&gt;
elements of the original.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let* ((orig '((1 2) (3 4)))&lt;br /&gt;
           (copy (copy-sequence orig)))&lt;br /&gt;
      (setcdr copy '((5 6)))&lt;br /&gt;
      (list orig copy))&lt;br /&gt;
    ==&amp;gt; (((1 2) (3 4)) ((1 2) (5 6)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
However, the elements in the copy are still from the original.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let* ((orig '((1 2) (3 4)))&lt;br /&gt;
           (copy (copy-sequence orig)))&lt;br /&gt;
      (setcdr (cadr copy) '(0))&lt;br /&gt;
      (list orig copy))&lt;br /&gt;
    ==&amp;gt; (((1 2) (3 0)) ((1 2) (3 0)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
The function `copy-tree' is the recursive version of `copy-sequence'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let* ((orig '((1 2) (3 4)))&lt;br /&gt;
           (copy (copy-tree orig)))&lt;br /&gt;
      (setcdr (cadr copy) '(0))&lt;br /&gt;
      (list orig copy))&lt;br /&gt;
    ==&amp;gt; (((1 2) (3 4)) ((1 2) (3 0)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Filtering:&lt;br /&gt;
&lt;br /&gt;
Emacs Lisp doesn't come with a `filter' function to keep elements that satisfy a conditional and excise the elements that do not satisfy it.  One can use `mapcar' to iterate over a list with a conditional, and then use `delq' to remove the `nil' values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (defun my-filter (condp lst)&lt;br /&gt;
    (delq nil&lt;br /&gt;
          (mapcar (lambda (x) (and (funcall condp x) x)) lst)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;          &lt;br /&gt;
&lt;br /&gt;
Therefore,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (my-filter 'identity my-list)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
is equivalent to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (delq nil my-list)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (let ((num-list '(1 'a 2 &amp;quot;nil&amp;quot; 3 nil 4)))&lt;br /&gt;
    (my-filter 'numberp num-list))&lt;br /&gt;
  ==&amp;gt; (1 2 3 4)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Actually the package cl-seq contains the functions `remove-if' and `remove-if-not'.  The latter can be used instead of `my-filter'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (let ((num-list '(1 'a 2 &amp;quot;nil&amp;quot; 3 nil 4)))&lt;br /&gt;
    (remove-if-not 'numberp num-list))&lt;br /&gt;
  ==&amp;gt; (1 2 3 4)&lt;br /&gt;
&lt;br /&gt;
  (let ((num-list '(1 'a 2 &amp;quot;nil&amp;quot; 3 nil 4)))&lt;br /&gt;
    (remove-if 'numberp num-list))&lt;br /&gt;
  ==&amp;gt; ((quote a) &amp;quot;nil&amp;quot; nil)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
As an example here is the quick sort algorithm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (defun quicksort (lst)&lt;br /&gt;
    &amp;quot;Implement the quicksort algorithm.&amp;quot;&lt;br /&gt;
    (if (null lst) nil&lt;br /&gt;
      (let* ((spl (car lst))&lt;br /&gt;
             (rst (cdr lst))&lt;br /&gt;
             (smalp (lambda (x)&lt;br /&gt;
                   (&amp;lt; x spl))))&lt;br /&gt;
        (append (quicksort (remove-if-not smalp rst))&lt;br /&gt;
                (list spl)&lt;br /&gt;
                (quicksort (remove-if smalp rst))))))&lt;br /&gt;
&lt;br /&gt;
  (quicksort '(5 7 1 3 -9 8 7 -4 0))&lt;br /&gt;
  ==&amp;gt; (-9 -4 0 1 3 5 7 7 8)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Tranposing:&lt;br /&gt;
&lt;br /&gt;
Convert multiple lists into a list &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
 ((lambda (&amp;amp;rest args)&lt;br /&gt;
    (mapcar (lambda (n)&lt;br /&gt;
              (delq nil (mapcar (lambda (arg) (nth n arg)) args)))&lt;br /&gt;
            (number-sequence 0 (1- (apply 'max (mapcar 'length args))))))&lt;br /&gt;
  '(1 2 3) '(a b c) '(A B C))&lt;br /&gt;
  ==&amp;gt; ((1 a A) (2 b B) (3 c C))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
A more concise version is possible with the the higher-arity version of mapcar available with the `cl' library.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  ((lambda (&amp;amp;rest args)&lt;br /&gt;
     (apply (function mapcar*) (function list) args))&lt;br /&gt;
   '(1 2 3) '(a b c) '(A B C))&lt;br /&gt;
  ==&amp;gt; ((1 a A) (2 b B) (3 c C))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Searching:&lt;br /&gt;
&lt;br /&gt;
Simply checking for existence of a value in a list can be done with&lt;br /&gt;
`member' or `memq'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (let ((words '(&amp;quot;fight&amp;quot; &amp;quot;foo&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;)))&lt;br /&gt;
    (car (member &amp;quot;for&amp;quot; words)))&lt;br /&gt;
  ==&amp;gt; &amp;quot;for&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  (let ((re &amp;quot;\\wo\\b&amp;quot;)&lt;br /&gt;
        (words '(&amp;quot;fight&amp;quot; &amp;quot;foo&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;)))&lt;br /&gt;
    (consp (memq t&lt;br /&gt;
             (mapcar (lambda (s) (numberp (string-match re s))) words))))&lt;br /&gt;
  ==&amp;gt; t&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
In the latter, a more efficient algorithm would use a loop (a non-local exit).&lt;br /&gt;
&lt;br /&gt;
I don't think so. Normally you will open it up with latest veorisn, then save it in an earlier veorisn, that wat you can retain the 2008 veorisn with all the new options, and then convert it to an earlier. The improvements which are not handled by an earlier veorisn will be prompted when you try to save. You can lose layers or part of layers.&lt;br /&gt;
&lt;br /&gt;
=== Vectors ===&lt;br /&gt;
&lt;br /&gt;
Vectors are fixed in size but elements can be accessed in constant time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let ((words [&amp;quot;fight&amp;quot; &amp;quot;foo&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;]))&lt;br /&gt;
      (when (string= &amp;quot;foo&amp;quot; (aref words 1))&lt;br /&gt;
        (aset words 1 &amp;quot;bar&amp;quot;))&lt;br /&gt;
      words)&lt;br /&gt;
    ==&amp;gt; [&amp;quot;fight&amp;quot; &amp;quot;bar&amp;quot; &amp;quot;for&amp;quot; &amp;quot;food!&amp;quot;]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
== Hashes ==&lt;br /&gt;
&lt;br /&gt;
Hashes map keys to values. In a way they are similar to alists, except&lt;br /&gt;
they are more efficient for a large number of keys.&lt;br /&gt;
&lt;br /&gt;
More info is available on the HashMap page.&lt;br /&gt;
&lt;br /&gt;
=== Storing and retrieving keys and values ===&lt;br /&gt;
&lt;br /&gt;
By default, hash tables use `eql' to compare keys. This is not appropriate&lt;br /&gt;
for strings: ##(eql &amp;quot;alex&amp;quot; &amp;quot;alex&amp;quot;)## ==&amp;gt; nil. Thus, use `equal' in these cases:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let ((nick-table (make-hash-table :test 'equal)))&lt;br /&gt;
      (puthash &amp;quot;kensanata&amp;quot; &amp;quot;Alex Schroeder&amp;quot; nick-table)&lt;br /&gt;
      (gethash &amp;quot;kensanata&amp;quot; nick-table))&lt;br /&gt;
    ==&amp;gt; &amp;quot;Alex Schroeder&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Iterate:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let ((nick-table (make-hash-table :test 'equal))&lt;br /&gt;
          nicks)&lt;br /&gt;
      (puthash &amp;quot;kensanata&amp;quot; &amp;quot;Alex Schroeder&amp;quot; nick-table)&lt;br /&gt;
      (puthash &amp;quot;e1f&amp;quot; &amp;quot;Luis Fernandes&amp;quot; nick-table)&lt;br /&gt;
      (puthash &amp;quot;pjb&amp;quot; &amp;quot;Pascal J. Bourguignon&amp;quot; nick-table)&lt;br /&gt;
      (maphash (lambda (nick real-name)&lt;br /&gt;
                 (setq nicks (cons nick nicks)))&lt;br /&gt;
               nick-table)&lt;br /&gt;
      nicks)&lt;br /&gt;
      ==&amp;gt; (&amp;quot;pjb&amp;quot; &amp;quot;e1f&amp;quot; &amp;quot;kensanata&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;      &lt;br /&gt;
&lt;br /&gt;
=== Sorting keys  ===&lt;br /&gt;
&lt;br /&gt;
Use `maphash' to build up a list of keys, sort it, and then loop through&lt;br /&gt;
the list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (let ((nick-table (make-hash-table :test 'equal))&lt;br /&gt;
          nicks)&lt;br /&gt;
      (puthash &amp;quot;kensanata&amp;quot; &amp;quot;Alex Schroeder&amp;quot; nick-table)&lt;br /&gt;
      (puthash &amp;quot;e1f&amp;quot; &amp;quot;Luis Fernandes&amp;quot; nick-table)&lt;br /&gt;
      (puthash &amp;quot;pjb&amp;quot; &amp;quot;Pascal J. Bourguignon&amp;quot; nick-table)&lt;br /&gt;
      (maphash (lambda (nick real-name)&lt;br /&gt;
                 (setq nicks (cons nick nicks)))&lt;br /&gt;
               nick-table)&lt;br /&gt;
      (mapcar (lambda (nick)&lt;br /&gt;
                (concat nick &amp;quot; =&amp;gt; &amp;quot; (gethash nick nick-table)))&lt;br /&gt;
              (sort nicks 'string&amp;lt;)))&lt;br /&gt;
      ==&amp;gt; (&amp;quot;e1f =&amp;gt; Luis Fernandes&amp;quot;&lt;br /&gt;
           &amp;quot;kensanata =&amp;gt; Alex Schroeder&amp;quot;&lt;br /&gt;
           &amp;quot;pjb =&amp;gt; Pascal J. Bourguignon&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;           &lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
=== Read ===&lt;br /&gt;
&lt;br /&gt;
Processing a file is usually done with a temporary buffer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
 (defun process-file (file)&lt;br /&gt;
   &amp;quot;Read the contents of a file into a temp buffer and then do&lt;br /&gt;
 something there.&amp;quot;&lt;br /&gt;
   (when (file-readable-p file)&lt;br /&gt;
     (with-temp-buffer&lt;br /&gt;
       (insert-file-contents file)&lt;br /&gt;
       (goto-char (point-min))&lt;br /&gt;
       (while (not (eobp))&lt;br /&gt;
       ;; do something here with buffer content&lt;br /&gt;
         (forward-line)))))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;         &lt;br /&gt;
&lt;br /&gt;
On the chance that a buffer may already be actively visiting the file,&lt;br /&gt;
consider using `find-file-noselect'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (defun file-string (file)&lt;br /&gt;
    &amp;quot;Read the contents of a file and return as a string.&amp;quot;&lt;br /&gt;
    (with-current-buffer (find-file-noselect file)&lt;br /&gt;
      (buffer-string)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;      &lt;br /&gt;
&lt;br /&gt;
=== Write ===&lt;br /&gt;
&lt;br /&gt;
To write something to a file you can create a temporary buffer, insert the things to write there and write the buffer contents to a file.  The following example read a string and a filename (with completion, but doesn't need to exist, see InteractiveCodeChar F) and write the string to that file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
 (defun write-string-to-file (string file)&lt;br /&gt;
   (interactive &amp;quot;sEnter the string: \nFFile to save to: &amp;quot;)&lt;br /&gt;
   (with-temp-buffer&lt;br /&gt;
     (insert string)&lt;br /&gt;
     (when (file-writable-p file)&lt;br /&gt;
       (write-region (point-min)&lt;br /&gt;
                     (point-max)&lt;br /&gt;
                     file))))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                     &lt;br /&gt;
&lt;br /&gt;
Maybe you are interested in word-count.el. It's cnirately to much foryour use-case but it is a great tool if you have some target lengthfor a document (e.g. diary entries).What I'm really missing in Emacs is some usage statistics. I canalready get an overview over my keybind habits with keyfreq but Iwould like that to be more comprehensive. Average buffer-length, timespent in different modes, time spent in files that are part of acertain directory, lines added etc. Maybe I'm just addicted to lifestatistics and this is not really useful. Who knows.&lt;br /&gt;
&lt;br /&gt;
=== Searching ===&lt;br /&gt;
&lt;br /&gt;
If you don't have grep, then you may need to write some Lisp which can find a match in a file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  ;; Visit file unless its already open.&lt;br /&gt;
  (with-current-buffer (find-file-noselect &amp;quot;~/.emacs&amp;quot;)&lt;br /&gt;
    (save-excursion ;; Don't change location of point.&lt;br /&gt;
      (goto-char (point-min)) ;; From the beginning...&lt;br /&gt;
      (if (re-search-forward &amp;quot;.*load-path.*&amp;quot; nil t 1)&lt;br /&gt;
          (match-string-no-properties 0)&lt;br /&gt;
        (error &amp;quot;Search failed&amp;quot;))))&lt;br /&gt;
  ==&amp;gt; &amp;quot;(add-to-list 'load-path \&amp;quot;/usr/share/emacs/site-lisp/\&amp;quot;)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
=== Locking ===&lt;br /&gt;
&lt;br /&gt;
=== Stat ===&lt;br /&gt;
&lt;br /&gt;
An interface to the kernel's stat(2) is provided by the function file-attributes. The way times are represented may be a bit unexpected, though.&lt;br /&gt;
&lt;br /&gt;
=== Deleting ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (if (file-exists-p filename)&lt;br /&gt;
      (delete-file filename))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;      &lt;br /&gt;
&lt;br /&gt;
=== Copy, move and rename ===&lt;br /&gt;
&lt;br /&gt;
== Directories ==&lt;br /&gt;
&lt;br /&gt;
=== Traversing ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
    (defun walk-path (dir action)&lt;br /&gt;
       &amp;quot;walk DIR executing ACTION with (dir file)&amp;quot;&lt;br /&gt;
       (cond ((file-directory-p dir)&lt;br /&gt;
              (or (char-equal ?/ (aref dir(1- (length dir))))&lt;br /&gt;
                  (setq dir (file-name-as-directory dir)))&lt;br /&gt;
              (let ((lst (directory-files dir nil nil t))&lt;br /&gt;
                     fullname file)&lt;br /&gt;
                (while lst&lt;br /&gt;
                  (setq file (car lst))&lt;br /&gt;
                  (setq lst (cdr lst))&lt;br /&gt;
                  (cond ((member file '(&amp;quot;.&amp;quot; &amp;quot;..&amp;quot;)))&lt;br /&gt;
                        (t&lt;br /&gt;
                         (and (funcall action dir file)&lt;br /&gt;
                              (setq fullname (concat dir file))&lt;br /&gt;
                              (file-directory-p fullname)&lt;br /&gt;
                              (walk-path fullname action)))))))&lt;br /&gt;
             (t&lt;br /&gt;
              (funcall action&lt;br /&gt;
                       (file-name-directory dir)&lt;br /&gt;
                       (file-name-nondirectory dir)))))&lt;br /&gt;
&lt;br /&gt;
    (defun walk-path-visitor (dir file)&lt;br /&gt;
       &amp;quot;Called by walk-path for each file found&amp;quot;&lt;br /&gt;
       (message (concat  dir file)))&lt;br /&gt;
&lt;br /&gt;
    (walk-path &amp;quot;~/&amp;quot; 'walk-path-visitor)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
=== Path splitting ===&lt;br /&gt;
&lt;br /&gt;
Splitting the path can be done with `split-string' and with the slash. Previously, Emacs would determine the character separating directory names with `directory-sep-char'.  However, the variable is obselete with Emacs 21.1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(split-string default-directory &amp;quot;/&amp;quot;)&lt;br /&gt;
==&amp;gt; (&amp;quot;&amp;quot; &amp;quot;usr&amp;quot; &amp;quot;share&amp;quot; &amp;quot;emacs&amp;quot; &amp;quot;22.2&amp;quot; &amp;quot;lisp&amp;quot; &amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For splitting a path variable, Emacs already has the `parse-colon-path' function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(parse-colon-path (getenv &amp;quot;PATH&amp;quot;))&lt;br /&gt;
==&amp;gt; (&amp;quot;/usr/lib/qt-3.3/bin/&amp;quot; &amp;quot;/usr/kerberos/bin/&amp;quot; &amp;quot;/usr/local/bin/&amp;quot;&lt;br /&gt;
&amp;quot;/usr/bin/&amp;quot; &amp;quot;/bin/&amp;quot; &amp;quot;/usr/local/sbin/&amp;quot; &amp;quot;/usr/sbin/&amp;quot; &amp;quot;/sbin/&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processes ==&lt;br /&gt;
&lt;br /&gt;
=== Running a program ===&lt;br /&gt;
&lt;br /&gt;
Run a command without caring about its output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (async-shell-command &amp;quot;emacs&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Run a command and put its output in the current buffer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (shell-command &amp;quot;seq 8 12 | sort&amp;quot; t)&lt;br /&gt;
  10&lt;br /&gt;
  11&lt;br /&gt;
  12&lt;br /&gt;
  8&lt;br /&gt;
  9&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Run a command and put its output in a new buffer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (shell-command &amp;quot;seq 8 12 | sort&amp;quot;&lt;br /&gt;
                 (get-buffer-create &amp;quot;*Standard output*&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;                 &lt;br /&gt;
&lt;br /&gt;
Run a command return its output as a string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
  (shell-command-to-string &amp;quot;seq 8 12 | sort&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
XEmacs also comes with `exec-to-string'.&lt;br /&gt;
&lt;br /&gt;
=== Handling signals ===&lt;br /&gt;
&lt;br /&gt;
== Sockets ==&lt;br /&gt;
&lt;br /&gt;
=== Tcp client ===&lt;br /&gt;
&lt;br /&gt;
=== Tcp server ===&lt;br /&gt;
&lt;br /&gt;
Perhaps EmacsEchoServer and EmacsDaytimeServer can be useful here.&lt;br /&gt;
&lt;br /&gt;
== Keyboard events ==&lt;br /&gt;
&lt;br /&gt;
* Call function bound to key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(funcall (key-binding (kbd &amp;quot;M-TAB&amp;quot;)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lisp&amp;quot;&amp;gt;&lt;br /&gt;
(call-interactively (key-binding (kbd &amp;quot;M-TAB&amp;quot;)))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]]&lt;br /&gt;
[[Category:Intermediate]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Version_Control&amp;diff=3034</id>
		<title>Version Control</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Version_Control&amp;diff=3034"/>
		<updated>2012-06-24T19:44:29Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 94.23.1.28 (talk) to last revision by GregLucas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Distributed Version Control ==&lt;br /&gt;
Emacs provides {{ModeLink|dvc}}, a standard interface for Distributed Version Control systems. {{Mode|dvc}} is based on and largely compatible with {{ModeLink|vc}} (see below).&lt;br /&gt;
&lt;br /&gt;
For some popular distributed version control systems there also exist additional Emacs modes that are independent of {{Mode|dvc}}. These are noted in the table below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!System&lt;br /&gt;
!Modes&lt;br /&gt;
|-&lt;br /&gt;
|git&lt;br /&gt;
|{{Mode|dvc}}, {{ModeLink|magit}}, &amp;lt;tt&amp;gt;[https://github.com/byplayer/egg egg]&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Bazaar (bzr)&lt;br /&gt;
|{{Mode|dvc}}&lt;br /&gt;
|-&lt;br /&gt;
|Mercurial (hg)&lt;br /&gt;
|{{Mode|dvc}} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Conventional Version Control ==&lt;br /&gt;
[[vc]] provides a standard interface between Emacs and conventional version control systems. See the table for an overview.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!System&lt;br /&gt;
!Modes&lt;br /&gt;
|-&lt;br /&gt;
|CVS&lt;br /&gt;
|{{Mode|vc}}&lt;br /&gt;
|-&lt;br /&gt;
|SVN&lt;br /&gt;
|{{Mode|vc}}&lt;br /&gt;
|-&lt;br /&gt;
|RCS&lt;br /&gt;
|{{Mode|vc}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Magit]]&lt;br /&gt;
[[Egg]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming]]&lt;br /&gt;
[[Category:Text Editing]]&lt;br /&gt;
[[Category:Version Control]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Bookmarks&amp;diff=3033</id>
		<title>Bookmarks</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Bookmarks&amp;diff=3033"/>
		<updated>2012-06-24T19:43:12Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by Bozhidar (talk) to last revision by 218.108.168.170&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It's a push press not a strict press.  Done pelrrpoy, there shouldn't be a lot of strain put on your neck because your shoulders and traps don't do much for the first 1/3rd of the press.  Try it and you'll see what I mean.  This exercise is responsible for a lot of pro strongmen and olympic lifters developing ungodly shoulder strength.  Way different than press/push press from rack position.&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Bookmarks&amp;diff=3032</id>
		<title>Bookmarks</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Bookmarks&amp;diff=3032"/>
		<updated>2012-06-24T19:42:17Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 218.108.168.170 (talk) to last revision by 188.143.232.12&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;try a vegeterian diet, it helps get rid of fat, bulk.avoid salts. you still can have portein just notfrom meat. try fish if you have to get portein.other than that,  any kind of stop, and jumps, repeatedwill help build the muscles you need. do it for 20 minutesever other day. you need to give it time to recover.you may want to increate the 30 minutes of jumpingto 40 once you see improved jumping.Play lots of basketballIf you play a lot of ball, that will tranlate into being in better shape. There's no way your vertical leap will improve if you aren't in good shape. Also, there are lots of quick movements you make in a game that you can't recreate outside of actual game play. These help build your overall basketball abilities, as well as your athleticism (explosiveness, jumping ability, etc.).- Workout with a jump ropeIt's an old school exercise, but it works. Jumping rope is a great way to build stamina, and work on your leg strength. In addition, it builds jumping ability (explosiveness, calf strength, etc.). It's really a great exercise.- Run stadium stairsAnother old school exericse and a great one. Running stadium stairs can really help your vertical leap because it build stamina, leg strength, and when done right, explosiveness. To work on explosiveness, use  bounding  movements. In otherwords, don't just get from one step the the next, but really leap and bound up from one step to the next.- Wall sits and squatsStrength training (like wall sits and squats) will help you build leg strength, which is a key component of athletic fitness, and therefore jumping ability. Remember to only use a weight that is comfortable for you, and to always have a trainer or training partner work out with you. You don't want to get hurt lifting too much weight, or lifting it improperly.- Explosive leapsThis is a great type of exercises. Do these at a park, or on a football field so that you are cushioned by the soft grass surface.One-legged jumps are done like this: leap as high as possible off of one foot, then come down and immediately leap as high as possible off the other leg. Repeat this for 10 to 15 jumps.Two-legged leaps are done like this: squat down so you are in the triple threat position. Now explode up and off the ground as if you are reaching for a rebound. Come down, gather yourself for a second or two, then leap up again, as high as possible. Do this 8 to 10 times.Remember, vertical leap is part leg strength and part explosiveness. In fact, the explosiveness part is the more important of the two. It's not about the size of your leg muscles, or how much weight you can put up in the gym. It's about your athletic ability, coordination, and your ability to explode up and off the ground.&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Emacs_Prelude&amp;diff=3031</id>
		<title>Emacs Prelude</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Emacs_Prelude&amp;diff=3031"/>
		<updated>2012-06-24T19:41:27Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 188.143.232.12 (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Prelude]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Guru-mode&amp;diff=3030</id>
		<title>Guru-mode</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Guru-mode&amp;diff=3030"/>
		<updated>2012-06-24T19:41:21Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 37.59.80.67 (talk) to last revision by Bozhidar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Package&lt;br /&gt;
|name=guru-mode&lt;br /&gt;
|description=helps you to use Emacs effectively&lt;br /&gt;
|author=[[User:Bozhidar | Bozhidar Batsov]]&lt;br /&gt;
|maintainer=[[User:Bozhidar | Bozhidar Batsov]]&lt;br /&gt;
|source=https://github.com/bbatsov/guru-mode&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''guru-mode''' disables some common keybindings and suggests the use of the established Emacs alternatives instead.&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;
(add-to-list 'load-path &amp;quot;/path/to/guru-mode/directory&amp;quot;)&lt;br /&gt;
(require 'guru-mode)&lt;br /&gt;
(guru-mode +1) ;; to enable in all buffers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Helpful keybindings ==&lt;br /&gt;
&lt;br /&gt;
== Common Customization ==&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Prelude]]&lt;br /&gt;
&lt;br /&gt;
== Project Pages ==&lt;br /&gt;
* [https://github.com/bbatsov/guru-mode GitHub Repo]&lt;br /&gt;
&lt;br /&gt;
== Tutorial Pages ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Convenience]][[Category:Third Party Package]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Binary_files&amp;diff=3029</id>
		<title>Binary files</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Binary_files&amp;diff=3029"/>
		<updated>2012-06-24T19:41:16Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 37.59.80.67 (talk) to last revision by 115.242.172.67&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hexl Mode ==&lt;br /&gt;
&lt;br /&gt;
There is a special major mode for editing binary files: Hexl mode. To use it, use M-x hexl-find-file instead of C-x C-f to visit the file. This command converts the file's contents to hexadecimal and lets you edit the translation. When you save the file, it is converted automatically back to binary.&lt;br /&gt;
&lt;br /&gt;
You can also use M-x hexl-mode to translate an existing buffer into hex. This is useful if you visit a file normally and then discover it is a binary file.&lt;br /&gt;
&lt;br /&gt;
Ordinary text characters overwrite in Hexl mode. This is to reduce the risk of accidentally spoiling the alignment of data in the file. There are special commands for insertion. Here is a list of the commands of Hexl mode:&lt;br /&gt;
&lt;br /&gt;
*C-M-d&lt;br /&gt;
Insert a byte with a code typed in decimal. &lt;br /&gt;
*C-M-o&lt;br /&gt;
Insert a byte with a code typed in octal. &lt;br /&gt;
*C-M-x&lt;br /&gt;
Insert a byte with a code typed in hex. &lt;br /&gt;
*C-x [&lt;br /&gt;
Move to the beginning of a 1k-byte “page.” &lt;br /&gt;
*C-x ]&lt;br /&gt;
Move to the end of a 1k-byte “page.” &lt;br /&gt;
*M-g&lt;br /&gt;
Move to an address specified in hex. &lt;br /&gt;
*M-j&lt;br /&gt;
Move to an address specified in decimal. &lt;br /&gt;
*C-c C-c&lt;br /&gt;
Leave Hexl mode, going back to the major mode this buffer had before you invoked hexl-mode.&lt;br /&gt;
Other Hexl commands let you insert strings (sequences) of binary bytes, move by shorts or ints, etc.; type C-h a hexl-&amp;lt;RET&amp;gt; for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Binary]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Richard_Stallman&amp;diff=3028</id>
		<title>Richard Stallman</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Richard_Stallman&amp;diff=3028"/>
		<updated>2012-06-24T19:41:09Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 37.59.80.67 (talk) to last revision by Kindahero&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Richard Matthew Stallman, known as RMS, is the founder of&lt;br /&gt;
[[Free Software Foundation]], launcher of [[GNU Project]], writer of&lt;br /&gt;
[[GPL]], and creator of [[GNU Emacs]]. &lt;br /&gt;
&lt;br /&gt;
* Known as St.IGNUcius to the follower of [[Church of Emacs]].&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.stallman.org/ Stallman's personal blog] &lt;br /&gt;
* [http://www.fsf.org/blogs/rms/ Stallman's FSF blog]&lt;br /&gt;
&lt;br /&gt;
[[Category: Emacs People]]&lt;br /&gt;
[[Category: Emacs Maintainer]]&lt;br /&gt;
[[Category: GNU]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=3027</id>
		<title>Quick Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=Quick_Tutorial&amp;diff=3027"/>
		<updated>2012-06-24T19:40:57Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 37.59.80.67 (talk) to last revision by 129.93.11.90&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many thanks for being my own intorucstr on this theme. My spouse and i enjoyed your current article a lot and most of all preferred how you really handled the aspect I regarded as being controversial. You're always incredibly kind to readers much like me and assist me to in my lifestyle .&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
	<entry>
		<id>https://wikemacs.org/index.php?title=BibTeX&amp;diff=3026</id>
		<title>BibTeX</title>
		<link rel="alternate" type="text/html" href="https://wikemacs.org/index.php?title=BibTeX&amp;diff=3026"/>
		<updated>2012-06-24T19:40:50Z</updated>

		<summary type="html">&lt;p&gt;Bozhidar: Reverted edits by 37.59.80.67 (talk) to last revision by 115.184.53.222&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Markup languages]][[Category:Document authoring]]&lt;/div&gt;</summary>
		<author><name>Bozhidar</name></author>
	</entry>
</feed>