<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">

<!-- RSS as a "standard" is terrible; use Atom.  -coyled -->
<!-- http://coyled.com/atom.xml -->

  <channel>
    <title>emacsrookie.com</title>
    <link>http://emacsrookie.com/</link>
    
    <description>Hints about the powerful emacs text editor</description>
    <language>en-us</language>
    <pubDate>Wed, 26 Oct 2011 17:28:57 CEST</pubDate>
    <lastBuildDate>Wed, 26 Oct 2011 17:28:57 CEST</lastBuildDate>

    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/emacsrookiecom" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="emacsrookiecom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Do what you have to do</title>
      <link>http://emacsrookie.com/2011/10/26/do-what-you-have-to-do/</link>
      <pubDate>Wed, 26 Oct 2011 00:00:00 CEST</pubDate>
      <author>tonini.samuel@gmail.com (Samuel Tonini)</author>
      <guid>http://emacsrookie.com/2011/10/26/do-what-you-have-to-do</guid>
      <description>&lt;p&gt;In the article &lt;a href="http://emacsrookie.com/2011/10/17/capture-the-monkey/"&gt;Capture the monkey&lt;/a&gt; I wrote about the Capture feature
from Org Mode, which gives you the ability to create task items on the
fly. Now I will show you how I use this feature to create
so-called TODO items.&lt;/p&gt;

&lt;p&gt;You will see that the introduction I give you is enough to start and
use the TODO feature to be productive in your task management
daily grind. If you're looking for more detailed information about the
TODO items, please consider to read the Org Mode &lt;a href="http://orgmode.org/manual/TODO-Items.html"&gt;manual&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Here's how to use it&lt;/h3&gt;

&lt;p&gt;Ok, let's create our first TODO item.&lt;/p&gt;

&lt;p&gt;To structure an Org Mode document you use headlines, and these start
with one or more stars:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;* Top level
** Second level
*** Third level
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Now you see how to create headlines, to make a headline into a
TODO item, just add the word &lt;code&gt;TODO&lt;/code&gt; after the stars and you get your
first TODO item:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;** TODO Create your first todo item
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;By default, a TODO item has two states, &lt;code&gt;TODO&lt;/code&gt; and &lt;code&gt;DONE&lt;/code&gt; and to
rotate through the different states use &lt;code&gt;(org-shiftright)&lt;/code&gt; or
&lt;code&gt;(org-shiftleft)&lt;/code&gt; functions. At this time it just switches between &lt;code&gt;TODO&lt;/code&gt; and
&lt;code&gt;DONE&lt;/code&gt;, but later when you have more keywords, it will also iterate
through these.&lt;/p&gt;

&lt;p&gt;Example of a &lt;code&gt;TODO&lt;/code&gt; item and a finished one marked as &lt;code&gt;DONE&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;** TODO Not done yet!
** DONE I&amp;#39;m done!
   CLOSED: [&amp;lt;Timestamp&amp;gt;]
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;You see that in the &lt;code&gt;DONE&lt;/code&gt; marked task item is a &lt;code&gt;CLOSED&lt;/code&gt; keyword with a
timestamp beside it. By default, if you finish a task item Org
Mode will add a timestamp and a &lt;code&gt;CLOSED&lt;/code&gt; keyword, to inform you about
the finished time of the task. This is very helpful to get more
information in the agenda view.&lt;/p&gt;

&lt;p&gt;By default the variable &lt;code&gt;org-log-done&lt;/code&gt; is set to &lt;code&gt;'time&lt;/code&gt;, which means
that after you finish a task a timestamp will be added, as already
mentioned above. But you could also add a note. Just assign &lt;code&gt;'note&lt;/code&gt;
to the &lt;code&gt;org-log-done&lt;/code&gt; variable and Org Mode will prompt you for an
additional note along with the timestamp.&lt;/p&gt;

&lt;p&gt;One of my favorite features I couldn't work without are the &lt;a href="http://orgmode.org/manual/Clocking-commands.html#Clocking-commands"&gt;clock
commands&lt;/a&gt;. Imagine you're starting with a new task, you have to fix a
bug in your code and have to manage the time you need to fix it. Org
Mode comes along with punch-clock powers, which makes this kind of
job very easy.&lt;/p&gt;

&lt;p&gt;The function &lt;code&gt;(org-clock-in)&lt;/code&gt; starts the clock on the current item
you're in and the vice-versa function &lt;code&gt;(org-clock-out)&lt;/code&gt; stops the
clock.&lt;/p&gt;

&lt;p&gt;Check out what this looks like:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;** TODO what&amp;#39;s the amount of time needed
   CLOCK: [2011-10-26 Wed 14:31]--[2011-10-26 Wed 15:10] =&amp;gt;  0:39
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;In the example above I started the clock and stopped the clock 39
minutes later. This feature is really great, because in the agenda
view of Org Mode this clock information will give you an overview
over how long we needed to fix our bugs.&lt;/p&gt;

&lt;p&gt;For now you know enough to manage your task items. Go ahead and try this
out.&lt;/p&gt;

&lt;p&gt;Next I will show you how easy it is to create your own &lt;code&gt;TODO&lt;/code&gt; like
keywords, for example something like &lt;code&gt;FEATURE&lt;/code&gt;, &lt;code&gt;BUG&lt;/code&gt; or &lt;code&gt;SUPPORT&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;Your own keywords&lt;/h3&gt;

&lt;p&gt;In my daily grind I use a few more keywords than just a simple &lt;code&gt;TODO&lt;/code&gt;
for my tasks. Org Mode gives you the possibility to add
our own keywords really easily. The variable &lt;code&gt;org-todo-keywords&lt;/code&gt; gets
all the task types we want to have:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-todo-keywords&lt;/span&gt;
       &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;TODO&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;DONE&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;FEATURE&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;COMPLETED&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;BUG&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;FIXED&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;CANCELED&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Great, now you're ready to use this just like &lt;code&gt;TODO&lt;/code&gt; before.&lt;/p&gt;

&lt;p&gt;What I really like is the possibility to create fast access &lt;code&gt;TODO&lt;/code&gt;
states by just adding single keys in parentheses after a keyword.&lt;/p&gt;

&lt;p&gt;Fast access state keys:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-todo-keywords&lt;/span&gt;
       &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;TODO(t)&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;DONE(d)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;FEATURE(f)&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;COMPLETED(c)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;BUG(b)&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;FIXED(x)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;sequence&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;|&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;CANCELED(a)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;If you now use the &lt;code&gt;(org-todo)&lt;/code&gt; function, Org Mode prompts you for the kind of
task key which you want to use, so you don't have to cycle through the
task types with the &lt;code&gt;(org-shiftleft)&lt;/code&gt; or &lt;code&gt;(org-shiftright)&lt;/code&gt; functions
anymore.&lt;/p&gt;

&lt;h3&gt;Functions and default keybindings&lt;/h3&gt;

&lt;table class="function-list"&gt;
    &lt;tr&gt;
        &lt;th class="functions"&gt;Function&lt;/th&gt;
        &lt;th&gt;Keybinding&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;org-shiftright&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;S-RIGHT&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Cycling through the item state forwardly.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;org-shiftleft&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;S-LEFT&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Cycling through the item state backwards.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;org-clock-in&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-c C-x C-i&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Start the clock in the current task item.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;org-clock-out&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-c C-x C-o&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Stop the clock in the current task item.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;org-todo&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-c C-t&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Change the TODO state of an item. If other keywords are
        set it prompts for one of these..&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;You see Org Mode's TODO feature is very powerful and still easy to
use. You get in touch with it in no time and you can use it for your
daily programming routine.&lt;/p&gt;

&lt;p&gt;There is certainly a lot of more stuff about the TODO Org Mode
feature and it would be wise of you to check it out. &lt;a href="http://orgmode.org/manual/TODO-Items.html#TODO-Items"&gt;Org Mode TODO manual&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=wPoAYHnhWkc:LhuPHHTFlAU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=wPoAYHnhWkc:LhuPHHTFlAU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=wPoAYHnhWkc:LhuPHHTFlAU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=wPoAYHnhWkc:LhuPHHTFlAU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=wPoAYHnhWkc:LhuPHHTFlAU:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=wPoAYHnhWkc:LhuPHHTFlAU:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=wPoAYHnhWkc:LhuPHHTFlAU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=wPoAYHnhWkc:LhuPHHTFlAU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=wPoAYHnhWkc:LhuPHHTFlAU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=wPoAYHnhWkc:LhuPHHTFlAU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Capture the monkey</title>
      <link>http://emacsrookie.com/2011/10/17/capture-the-monkey/</link>
      <pubDate>Mon, 17 Oct 2011 00:00:00 CEST</pubDate>
      <author>tonini.samuel@gmail.com (Samuel Tonini)</author>
      <guid>http://emacsrookie.com/2011/10/17/capture-the-monkey</guid>
      <description>&lt;p&gt;The first Emacsrookie article was about
&lt;a href="http://emacsrookie.com/2011/09/13/do-you-remember/"&gt;Remember&lt;/a&gt;, an
Emacs built in package to create new tasks on the fly. There I
promised to write a new article about how to do the same in a more
recent way, with Capture.&lt;/p&gt;

&lt;p&gt;I will show now how to use Capture, the way how
&lt;a href="http://orgmode.org/"&gt;Org Mode&lt;/a&gt; handles capturing new tasks on the
fly. Capture is highly inspired by the Remember package and I
recommend to switch to it if you still use Remember.&lt;/p&gt;

&lt;p&gt;But why it's so great? It's really easy to use, it's built in Org Mode
and it brings powerful abilities to create and customize new task
templates.&lt;/p&gt;

&lt;p&gt;Let's check it out!&lt;/p&gt;

&lt;h3&gt;Here's how to use it&lt;/h3&gt;

&lt;p&gt;Org Mode ships in with Emacs. But if you like to get a more recent
version of Org Mode, please check the
&lt;a href="http://orgmode.org/manual/Installation.html#Installation"&gt;install&lt;/a&gt;
section in the Org Mode manual.&lt;/p&gt;

&lt;p&gt;To create your first task, you have to define a default file in
which the task should be added.&lt;/p&gt;

&lt;p&gt;Just leave the path to the file in the following variable:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-default-notes-file&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt; &lt;span class="nv"&gt;org-directory&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/tasks.org&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Done, now you're ready to go!&lt;/p&gt;

&lt;p&gt;Org Mode gives you the function &lt;code&gt;org-capture&lt;/code&gt; to open the &lt;code&gt;*Org
select*&lt;/code&gt; buffer. At first, you just have three points to choose from,
create a new task item, open customize (for create new Capture
templates) or quit the buffer.&lt;/p&gt;

&lt;p&gt;You should create a new task item at the outset, to get a feeling how
it works. You shouldn't have any problems to create a task, it's very
self-explinatory.&lt;/p&gt;

&lt;p&gt;Maybe at this point you ask yourself what's about this Capture
template stuff you read about in the &lt;code&gt;*Org select*&lt;/code&gt; buffer.&lt;/p&gt;

&lt;p&gt;Let's see what this template stuff is all about.&lt;/p&gt;

&lt;h3&gt;Templates&lt;/h3&gt;

&lt;p&gt;Capture gives you the ability to create your own templates for new
task items. You just have to define a list for each of your templates
and assign them to the &lt;code&gt;org-capture-templates&lt;/code&gt; variable.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-capture-templates&lt;/span&gt;
      &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;t&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Todo&amp;quot;&lt;/span&gt; &lt;span class="nv"&gt;entry&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;file+headline&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;~/org/tasks.org&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Tasks&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
             &lt;span class="s"&gt;&amp;quot;* TODO %?\n  %t&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Ok, let's see what kind of a template we have defined. When you create
a template, you need to set the following items in the list:&lt;/p&gt;

&lt;table class="function-list"&gt;
    &lt;tr&gt;
        &lt;th class="functions"&gt;Item value&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
        &lt;td&gt;&lt;span class="item"&gt;keys&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;A string which is used as a key for the template selection.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
        &lt;td&gt;&lt;span class="item"&gt;description&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;The description of the template.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
        &lt;td&gt;&lt;span class="item"&gt;type&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;The type of a new item.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
        &lt;td&gt;&lt;span class="item"&gt;target&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;The specification where the new item should
        be placed.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
        &lt;td&gt;&lt;span class="item"&gt;template&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;The template for creating the capture item.&lt;/td&gt;
    &lt;/tr&gt;

    &lt;tr&gt;
        &lt;td&gt;&lt;span class="item"&gt;properties&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Additional properties.&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Check the &lt;a href="http://orgmode.org/manual/Template-elements.html#Template-elements"&gt;manuel&lt;/a&gt; for detailed information.&lt;/p&gt;

&lt;p&gt;Capture has some nice &lt;a href="http://orgmode.org/manual/Template-expansion.html#Template-expansion"&gt;template expansion&lt;/a&gt; and you should read through
the list.&lt;/p&gt;

&lt;p&gt;In the above template definition I just used &lt;code&gt;%?&lt;/code&gt; and &lt;code&gt;%t&lt;/code&gt;. I mostly
use them because I'm not a fancy boy. &lt;code&gt;%?&lt;/code&gt; means that after completing
the template, the cursor will be positioned there. And the &lt;code&gt;%t&lt;/code&gt; is a
simple date only timestamp which I use because I want that my new
&lt;code&gt;TODO&lt;/code&gt; item will be shown up in the agenda view of Org Mode.&lt;/p&gt;

&lt;p&gt;Let's define a new keybinding to your new Capture template, so you
don’t have to go through the selecting process when you want to create a new
task item:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;define-key&lt;/span&gt; &lt;span class="nv"&gt;global-map&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;C-c t&amp;quot;&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;interactive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;org-capture&lt;/span&gt; &lt;span class="nv"&gt;nil&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;t&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;So now you could create a new task item with &lt;code&gt;C-c t&lt;/code&gt; without going
trough the template selection.&lt;/p&gt;

&lt;h3&gt;Some customization&lt;/h3&gt;

&lt;p&gt;I use Org Mode for a lot of things, also these article are written in Org
mode. I manage also all my project with it, and because I have to
switch between them through the day, I have written some code to
create new items for a specific project on the fly.&lt;/p&gt;

&lt;p&gt;First a variable which holds the path to the projects org files:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defvar&lt;/span&gt; &lt;span class="nv"&gt;custom--org-project-file-path&lt;/span&gt;
  &lt;span class="s"&gt;&amp;quot;~/org/projects/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Second I defined a method who returns all the files which are in the
org projects path:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;custom-org-project-files&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;directory-files&lt;/span&gt; &lt;span class="nv"&gt;custom--org-project-file-path&lt;/span&gt; &lt;span class="nv"&gt;nil&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\\.org$&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Then I created a method which prompts for one of my project org files
and I used the &lt;code&gt;completing-read&lt;/code&gt; function to get a nice file
completing on my org project files:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;custom-org-project-chooser&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;let &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nf"&gt;completing-read-func&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;null&lt;/span&gt; &lt;span class="nv"&gt;ido-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                                  &lt;span class="ss"&gt;&amp;#39;completing-read&lt;/span&gt;
                                &lt;span class="ss"&gt;&amp;#39;ido-completing-read&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;project-file&lt;/span&gt;
          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;funcall&lt;/span&gt; &lt;span class="nv"&gt;completing-read-func&lt;/span&gt;
                   &lt;span class="s"&gt;&amp;quot;Project: &amp;quot;&lt;/span&gt;
                   &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;custom-org-project-files&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                   &lt;span class="nv"&gt;nil&lt;/span&gt;
                   &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;You can see in the code example above that I decided to use the
function &lt;code&gt;ido-completing-read&lt;/code&gt; instead of &lt;code&gt;completing-read&lt;/code&gt; if
&lt;code&gt;ido-mode&lt;/code&gt; available. (Check out &lt;a href="http://www.emacswiki.org/emacs/InteractivelyDoThings"&gt;ido-mode&lt;/a&gt; for further
informations.)&lt;/p&gt;

&lt;p&gt;After that I put my &lt;code&gt;custom-org-project-chooser&lt;/code&gt; function in a helper
function where I define in which file the new task item should be
placed and where in the file the task should be positioned.&lt;/p&gt;

&lt;p&gt;I used in the &lt;code&gt;re-search-forward&lt;/code&gt; function with a speficied regulary
expression to find the position in the file where I want to put the
task.&lt;/p&gt;

&lt;p&gt;In my case I always put it after the project title header (like: &lt;code&gt;* My Project&lt;/code&gt;).&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;custom-org-project-file&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;find-file&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;concat&lt;/span&gt; &lt;span class="nv"&gt;custom--org-project-file-path&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;custom-org-projects-chooser&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;goto-char&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;point-min&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;re-search-forward&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;^\*\s*.+\n&amp;quot;&lt;/span&gt; &lt;span class="nv"&gt;nil&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;newline &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;At last I created a Capture template from the type &lt;code&gt;function&lt;/code&gt; which
calls my &lt;code&gt;custom-org-project-file&lt;/code&gt; function when a new project item
will be created:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;org-capture-templates&lt;/span&gt;
      &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;p&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Project Todo Files&amp;quot;&lt;/span&gt; &lt;span class="nv"&gt;entry&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;function&lt;/span&gt; &lt;span class="nv"&gt;custom-org-project-file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
         &lt;span class="s"&gt;&amp;quot;** TODO %?\n  %T&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Thats it! Bind this Capture template call to a key you like and you're
ready to go and create your own project tasks on the fly.&lt;/p&gt;

&lt;p&gt;You find the whole source in my emacs configs &lt;a href="https://github.com/tonini/dotfiles/blob/master/emacs.d/private/org-mode.el"&gt;repository&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;If you like to manage your task through the day I really
recommend Capture and all his capabilites. Check the Capture &lt;a href="http://orgmode.org/manual/Capture.html#Capture"&gt;manual&lt;/a&gt;
out and get yourself a better overview.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=SoAQ4r6Uwp4:a9mNBNtE96M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=SoAQ4r6Uwp4:a9mNBNtE96M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=SoAQ4r6Uwp4:a9mNBNtE96M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=SoAQ4r6Uwp4:a9mNBNtE96M:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=SoAQ4r6Uwp4:a9mNBNtE96M:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=SoAQ4r6Uwp4:a9mNBNtE96M:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=SoAQ4r6Uwp4:a9mNBNtE96M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=SoAQ4r6Uwp4:a9mNBNtE96M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=SoAQ4r6Uwp4:a9mNBNtE96M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=SoAQ4r6Uwp4:a9mNBNtE96M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Enter The Dired Dungeon</title>
      <link>http://emacsrookie.com/2011/10/10/enter-the-dired-dungeon/</link>
      <pubDate>Mon, 10 Oct 2011 00:00:00 CEST</pubDate>
      <author>tonini.samuel@gmail.com (Samuel Tonini)</author>
      <guid>http://emacsrookie.com/2011/10/10/enter-the-dired-dungeon</guid>
      <description>&lt;p&gt;When I talk with people about Emacs, they often complain about
the missing project navigator.&lt;/p&gt;

&lt;p&gt;Dired has a lot to offer that doesn't fit in just one article, so
I decided to split it into several parts. I start by showing the
navigation abilities of Dired.&lt;/p&gt;

&lt;p&gt;Throughout the article I won't refer to keybindings but instead to the
function names. At the end there will be a list of the functions
including the corresponding default keybindings.&lt;/p&gt;

&lt;h3&gt;Here's how to use it&lt;/h3&gt;

&lt;p&gt;Dired is built into Emacs, so you don't have to install anything.&lt;/p&gt;

&lt;p&gt;Enter Dired by calling the function &lt;code&gt;dired&lt;/code&gt;. The minibuffer opens and prompts you to choose a directory to open.&lt;/p&gt;

&lt;p&gt;Example of an open Dired buffer:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;  /Users/samuel/Projects/basement:
  total used in directory 48 available 151364824
  drwxr-xr-x  10 samuel  staff   340 24 Aug 16:16 .
  drwxr-xr-x  37 samuel  staff  1258  5 Okt 13:54 ..
  drwxr-xr-x  12 samuel  staff   408  5 Okt 22:29 .git
  -rw-r--r--   1 samuel  staff    33 24 Aug 15:55 .gitignore
  -rw-r--r--   1 samuel  staff    92 24 Aug 15:55 Gemfile
  -rw-r--r--   1 samuel  staff   194 24 Aug 16:16 Gemfile.lock
  -rw-r--r--   1 samuel  staff    71 24 Aug 15:57 README.markdown
  -rw-r--r--   1 samuel  staff    28 24 Aug 15:55 Rakefile
  -rw-r--r--   1 samuel  staff   757 24 Aug 16:04 basement.gemspec
  drwxr-xr-x   4 samuel  staff   136 24 Aug 15:55 lib
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Dired creates a read-only buffer and lists all the files
from your chosen directory.&lt;/p&gt;

&lt;p&gt;In the Dired buffer you're able to move around with the usual
movement functions. Only the &lt;code&gt;next-line&lt;/code&gt; and &lt;code&gt;previous-line&lt;/code&gt; functions are
redefined. Generally when you use these functions, the cursor will be
positioned at the beginning of the line, but in the Dired buffer it
goes to the beginning of the file name.&lt;/p&gt;

&lt;p&gt;Next what you want to know is the &lt;code&gt;dired-goto-file&lt;/code&gt; function, which
prompts for a file name in the minibuffer. It moves the cursor in the
Dired buffer to the file you've chosen. Most of the time, you want to
visit the file of the currently selected line. In this case you use
&lt;code&gt;dired-find-file&lt;/code&gt; which opens the file straight away without prompting
for a file name input.&lt;/p&gt;

&lt;p&gt;Maybe you're asking yourself now, but what about
sub directories? You have seen how easy it is to navigate in a single
directory and visit specific files, maybe you found out that when you
use &lt;code&gt;dired-goto-file&lt;/code&gt; on a sub directory it will list the files from
this directory. But you want a solution with a better overview,
something that gives you the parent and the sub directory at one glance.
So lets check out what Dired has in store for that scenario.&lt;/p&gt;

&lt;p&gt;As you know, Dired just displays one directory at the time. But with
the &lt;code&gt;dired-maybe-insert-subdir&lt;/code&gt; function, Dired takes the directory
on the current line and lists the content of the directory below
the parent directory in the current Dired buffer.&lt;/p&gt;

&lt;p&gt;Let's see how this looks like:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;  /Users/samuel/Projects/basement:
  total used in directory 48 available 151364824
  drwxr-xr-x  10 samuel  staff   340 24 Aug 16:16 .
  drwxr-xr-x  37 samuel  staff  1258  5 Okt 13:54 ..
  drwxr-xr-x  12 samuel  staff   408  5 Okt 22:29 .git
  -rw-r--r--   1 samuel  staff    33 24 Aug 15:55 .gitignore
  -rw-r--r--   1 samuel  staff    92 24 Aug 15:55 Gemfile
  -rw-r--r--   1 samuel  staff   194 24 Aug 16:16 Gemfile.lock
  -rw-r--r--   1 samuel  staff    71 24 Aug 15:57 README.markdown
  -rw-r--r--   1 samuel  staff    28 24 Aug 15:55 Rakefile
  -rw-r--r--   1 samuel  staff   757 24 Aug 16:04 basement.gemspec
  drwxr-xr-x   4 samuel  staff   136 24 Aug 15:55 lib

  /Users/samuel/Projects/basement/lib:
  total used in directory 8 available 151364824
  drwxr-xr-x   4 samuel  staff  136 24 Aug 15:55 .
  drwxr-xr-x  10 samuel  staff  340 24 Aug 16:16 ..
  drwxr-xr-x   3 samuel  staff  102 24 Aug 15:55 basement
  -rw-r--r--   1 samuel  staff   75 24 Aug 15:55 basement.rb
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;You see, the parent directory is on top and the sub directory you jumped
to is listed below. It's an easy and great overview. At this point
Dired gives you a few functions to move between the
directories. &lt;code&gt;dired-prev-subdir&lt;/code&gt; to move up in the directory tree and the
vice-versa function &lt;code&gt;dired-next-subdir&lt;/code&gt;. Also useful is
the function &lt;code&gt;dired-up-directory&lt;/code&gt; which runs Dired in the parent
directory. It searches in the current buffer for the parent directory or
in another buffer, or creates a new one if needed.&lt;/p&gt;

&lt;h3&gt;Some customization&lt;/h3&gt;

&lt;p&gt;The variable &lt;code&gt;dired-listing-switches&lt;/code&gt; contains the options which are
used when &lt;code&gt;ls&lt;/code&gt; is called. That means you could define how the command
&lt;code&gt;ls&lt;/code&gt; should be called when you open a new directory in Dired.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;dired-listing-switches&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;-lRS&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;-&lt;/code&gt; in the &lt;code&gt;dired-listing-switches&lt;/code&gt; variable is a must or Dired
wont work. I also recommend to add the &lt;code&gt;l&lt;/code&gt; option to the variable, as
by default just the single file and directory names would be listed.
Just fire up the &lt;code&gt;ls&lt;/code&gt; man page if you want to see all available
options for &lt;code&gt;ls&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;Functions and default keybindings&lt;/h3&gt;

&lt;table class="function-list"&gt;
    &lt;tr&gt;
        &lt;th class="functions"&gt;Function&lt;/th&gt;
        &lt;th&gt;Keybinding&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-x d&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Enter Dired.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-next-line&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-n / SPC / n&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Move to the next line.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-previous-line&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-p / p / DEL&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Move to the previous line. (&lt;span class="code"&gt;DEL&lt;/span&gt; also unflags.)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-goto-file&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;j&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Prompts for a filename and moves cursor to choosen file in
    the Dired buffer.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-find-file&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;f / e / RET&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Open the file on the current line.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-next-subdir&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-M-n&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Jumps to the next sub directory.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-prev-subdir&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;C-M-p&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Jumps to the previous sub directory.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-prev-subdir&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;^&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Run Dired on parent directory of current directory.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;span class="code"&gt;dired-maybe-insert-subdir&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;&lt;span class="code"&gt;i&lt;/span&gt;&lt;/td&gt;
        &lt;td&gt;Opens the content of the directory on the current line in the Dired buffer.&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Dired has everything you need to navigate through your daily projects
and a lot more. I just scratched the surface and recommend the
official &lt;a href="http://www.gnu.org/s/libtool/manual/emacs/Dired.html#Dired"&gt;Emacs Dired manual&lt;/a&gt;
for further information.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=YCpCkgtTFkI:bqBb_zqOZt0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=YCpCkgtTFkI:bqBb_zqOZt0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=YCpCkgtTFkI:bqBb_zqOZt0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=YCpCkgtTFkI:bqBb_zqOZt0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=YCpCkgtTFkI:bqBb_zqOZt0:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=YCpCkgtTFkI:bqBb_zqOZt0:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=YCpCkgtTFkI:bqBb_zqOZt0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=YCpCkgtTFkI:bqBb_zqOZt0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=YCpCkgtTFkI:bqBb_zqOZt0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=YCpCkgtTFkI:bqBb_zqOZt0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Handle Ruby Versions</title>
      <link>http://emacsrookie.com/2011/10/01/handle-ruby-versions/</link>
      <pubDate>Sat, 01 Oct 2011 00:00:00 CEST</pubDate>
      <author>tonini.samuel@gmail.com (Samuel Tonini)</author>
      <guid>http://emacsrookie.com/2011/10/01/handle-ruby-versions</guid>
      <description>&lt;p&gt;&lt;a href="http://beginrescueend.com/"&gt;RVM&lt;/a&gt; it's an extremly usefull tool if you
have to work with Ruby, different Ruby projects and specific
Ruby Gemsets for your projects. RVM offers the solution for these
needs by creating environments bound to a specific Ruby version and a
set of Ruby Gems. This possibility avoids Gem version conflicts between
your projects and also makes it easy to create test environments.&lt;/p&gt;

&lt;p&gt;Now what we want is to bring this into our beloved Emacs. And here comes rvm.el
along, an Emacs package by &lt;a href="https://github.com/senny"&gt;Yves Senn&lt;/a&gt;. The rvm.el package integrates
Emacs with RVM and gives us a few nifty functions.&lt;/p&gt;

&lt;p&gt;One of the great advantages which rvm.el brings is that packages like
&lt;code&gt;inf-ruby&lt;/code&gt; and &lt;code&gt;mode-compile&lt;/code&gt; automatically benefit from it and use the
precise Ruby version.&lt;/p&gt;

&lt;h3&gt;Here's how to use it&lt;/h3&gt;

&lt;p&gt;First you have to install rvm.el; you get the source on
&lt;a href="https://github.com/senny/rvm.el"&gt;Github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then you need to put the rvm.el somewhere in your &lt;code&gt;load-path&lt;/code&gt;
and add the following to your &lt;code&gt;~/.emacs&lt;/code&gt; file.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="c1"&gt;;; Load rvm.el&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;rvm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;;; use rvm’s default ruby for the current Emacs session&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;rvm-use-default&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Done, now you're ready to use rvm.el.&lt;/p&gt;

&lt;p&gt;The first function you want to know is &lt;code&gt;rvm-activate-corresponding-ruby&lt;/code&gt;,
this interactive function activates the corresponding Ruby version for
the file in the current buffer. What the function does is, to search
for an &lt;a href="http://beginrescueend.com/workflow/rvmrc/"&gt;.rvmrc&lt;/a&gt; file and activate the selected Ruby version. If there
is no &lt;code&gt;.rvmrc&lt;/code&gt; file, the default ruby will be used instead.&lt;/p&gt;

&lt;p&gt;Maybe you want to switch manually to a specific Ruby version, then you
could use the &lt;code&gt;rvm-use&lt;/code&gt; function, which is also as an interactive
function available.&lt;/p&gt;

&lt;p&gt;If you're working with Ruby on a daily basis and have to rummage through
different Gem source code from time to time, then you will definitely
need the interactive &lt;code&gt;rvm-open-gem&lt;/code&gt; function. This function gives you a
list of all the Gems which are installed for the currently activated
Ruby version and shows them in the minibuffer. Now you just have to decide
which one to open.&lt;/p&gt;

&lt;p&gt;In addition to that, if you have &lt;a href="/2011/09/25/workspaces/"&gt;Perspective&lt;/a&gt; installed, &lt;code&gt;rvm-open-gem&lt;/code&gt; will
open the chosen Gem directory in a new perspective, labeled with the
Gem's name. Now it's easy to switch back and forth between your project and
the Gem source.&lt;/p&gt;

&lt;h3&gt;More functions&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;rvm-autodetect-ruby&lt;/code&gt; will add a &lt;code&gt;ruby-mode-hook&lt;/code&gt; which will call
&lt;code&gt;rvm-activate-corresponding-ruby&lt;/code&gt; to detect the Ruby version.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rvm-autodetect-ruby-stop&lt;/code&gt; is the vice-versa function, it will remove
the &lt;code&gt;ruby-mode-hook&lt;/code&gt; which calls the &lt;code&gt;rvm-activate-corresponding-ruby&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rvm-use-default&lt;/code&gt; uses the rvm default configured Ruby as the
current Ruby version.&lt;/p&gt;

&lt;h3&gt;Some customization&lt;/h3&gt;

&lt;p&gt;You can use rvm.el in your own Emacs scripts easily. Here an
example how &lt;code&gt;rspec-mode&lt;/code&gt; uses it:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defcustom&lt;/span&gt; &lt;span class="nv"&gt;rspec-use-rvm&lt;/span&gt; &lt;span class="nv"&gt;nil&lt;/span&gt;
  &lt;span class="s"&gt;&amp;quot;t when RVM in is in use. (Requires rvm.el)&amp;quot;&lt;/span&gt;
  &lt;span class="nv"&gt;:type&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;boolean&lt;/span&gt;
  &lt;span class="nv"&gt;:group&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;rspec-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;And in the &lt;code&gt;rspec-compile&lt;/code&gt; function it uses the
&lt;code&gt;rvm-activate-corresponding-ruby&lt;/code&gt; before it runs the specs.&lt;/p&gt;

&lt;p&gt;The following example code is simplified.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;rspec-compile&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="c1"&gt;;; some code.....&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="nv"&gt;rspec-use-rvm&lt;/span&gt;
      &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;rvm-activate-corresponding-ruby&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="c1"&gt;;; more code ..&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Rvm.el is a great package and if you're a Ruby programmer it
will make your daily adventures with Ruby a lot more exciting.&lt;/p&gt;

&lt;p&gt;The source code is available on the &lt;a href="https://github.com/senny/rvm.el"&gt;rvm.el&lt;/a&gt; repository on Github.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=JfsjgcsEXE4:hLs3zghDMZA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=JfsjgcsEXE4:hLs3zghDMZA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=JfsjgcsEXE4:hLs3zghDMZA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=JfsjgcsEXE4:hLs3zghDMZA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=JfsjgcsEXE4:hLs3zghDMZA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=JfsjgcsEXE4:hLs3zghDMZA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=JfsjgcsEXE4:hLs3zghDMZA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=JfsjgcsEXE4:hLs3zghDMZA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=JfsjgcsEXE4:hLs3zghDMZA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=JfsjgcsEXE4:hLs3zghDMZA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Workspaces</title>
      <link>http://emacsrookie.com/2011/09/25/workspaces/</link>
      <pubDate>Sun, 25 Sep 2011 00:00:00 CEST</pubDate>
      <author>tonini.samuel@gmail.com (Samuel Tonini)</author>
      <guid>http://emacsrookie.com/2011/09/25/workspaces</guid>
      <description>&lt;p&gt;Perspective is an emacs package by &lt;a href="http://nex-3.com/"&gt;Nathan Weizenbaum&lt;/a&gt;, which offers the
possibility of working with different workspaces. If you are used to a
windows manager (like Fluxbox, Gnome, KDE etc. for instance), you
know the advantages of switching between several desktops or setting up
different desktops for your purposes.&lt;/p&gt;

&lt;p&gt;In my daily grind I switch often between projects, fixing a bug
there or reading some source codes here. This possibility of working this way is extremely helpful.
It's hard imagining not to be able to use it.&lt;/p&gt;

&lt;p&gt;Perspective gives you tagged workspaces and because each perspective
(workspace) is composed of a window configuration and a set of
buffers, switching to a perspective will only make the buffers
available which belong to it.&lt;/p&gt;

&lt;h3&gt;Here's how to use it&lt;/h3&gt;

&lt;p&gt;First you have to install perspective, you get the source on
&lt;a href="http://github.com/nex3/perspective-el"&gt;Github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then you need to put the perspective.el file somewhere in your &lt;code&gt;load-path&lt;/code&gt;
and add the following to your &lt;code&gt;~/.emacs&lt;/code&gt; file.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="c1"&gt;;; Load Perspective&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;perspective&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;;; Toggle the perspective mode&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;persp-mode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;From now on you are ready to go. Perspective is easy to use and you
will be familiar with its functionality in no time.&lt;/p&gt;

&lt;p&gt;What you will use mostly are &lt;code&gt;persp-switch&lt;/code&gt;. With this function you
switch to the perspective you want, if the specified perspective
doesn't exist, it will create a new one and switch to it.&lt;/p&gt;

&lt;p&gt;Sometimes you need to rename a perspective and for this action use the function
 &lt;code&gt;persp-rename&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Another useful function is &lt;code&gt;persp-add-buffer&lt;/code&gt;, just
add a buffer to your chosen perspective. The vice-versa function of
it is &lt;code&gt;persp-remove-buffer&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;More functions&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;pesp-kill&lt;/code&gt; just kill a not anymore used perspective.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;persp-import&lt;/code&gt; import a perspective from another frame.&lt;/p&gt;

&lt;h3&gt;Some customization&lt;/h3&gt;

&lt;p&gt;Yves Senn, a friend of mine did a great job customizing
perspective. He defined a macro which takes two arguments : the &lt;code&gt;name&lt;/code&gt; for the
perspective and the &lt;code&gt;body&lt;/code&gt; which contains the code that will be evaluated after creating
the perspective. So what you can do now is to define your custom
function using the macro.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defmacro&lt;/span&gt; &lt;span class="nv"&gt;custom-persp&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt; &lt;span class="nv"&gt;&amp;amp;rest&lt;/span&gt; &lt;span class="nv"&gt;body&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="o"&gt;`&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;let &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nf"&gt;initialize&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;not &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;gethash&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt; &lt;span class="nv"&gt;perspectives-hash&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
              &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;current-perspective&lt;/span&gt; &lt;span class="nv"&gt;persp-curr&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;persp-switch&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;when&lt;/span&gt; &lt;span class="nv"&gt;initialize&lt;/span&gt; &lt;span class="o"&gt;,@&lt;/span&gt;&lt;span class="nv"&gt;body&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;persp-last&lt;/span&gt; &lt;span class="nv"&gt;current-perspective&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;For instance, create a &lt;code&gt;@org&lt;/code&gt;
named perspective and open the first agenda file.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;custom-persp/org&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;interactive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;custom-persp&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;@org&amp;quot;&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;find-file&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;first&lt;/span&gt; &lt;span class="nv"&gt;org-agenda-files&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;At last, just create a key binding for the function.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;global-set-key&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;kbd&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;C-p o&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;custom-persp/org&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;You find the whole source in the &lt;a href="https://github.com/senny/emacs-configs/blob/master/private/extensions/perspectives.el"&gt;emacs-configs&lt;/a&gt; repository from Yves Senn.&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;

&lt;p&gt;Perspective is definitly a well written package&lt;/p&gt;

&lt;p&gt;I recommend reading through the Perspective source and make yourself
more familiar with whats going on beyond all these functions.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=4hkBgHy7oBY:gTbyxJjZ370:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=4hkBgHy7oBY:gTbyxJjZ370:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=4hkBgHy7oBY:gTbyxJjZ370:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=4hkBgHy7oBY:gTbyxJjZ370:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=4hkBgHy7oBY:gTbyxJjZ370:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=4hkBgHy7oBY:gTbyxJjZ370:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=4hkBgHy7oBY:gTbyxJjZ370:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=4hkBgHy7oBY:gTbyxJjZ370:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=4hkBgHy7oBY:gTbyxJjZ370:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=4hkBgHy7oBY:gTbyxJjZ370:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Do you remember?</title>
      <link>http://emacsrookie.com/2011/09/13/do-you-remember/</link>
      <pubDate>Tue, 13 Sep 2011 00:00:00 CEST</pubDate>
      <author>tonini.samuel@gmail.com (Samuel Tonini)</author>
      <guid>http://emacsrookie.com/2011/09/13/do-you-remember</guid>
      <description>&lt;p&gt;Remember is a mode for Emacs, to simpy remember data.
I'm a big fan of &lt;a href="http://orgmode.org/"&gt;org-mode&lt;/a&gt;, but to create notes on the fly
without having to switch to my org file, I prefer Remember. Since
Emacs version 23.1 Remember is built in and it's doing a good job
without any special configurations needed.&lt;/p&gt;

&lt;h3&gt;Here's how to use it&lt;/h3&gt;

&lt;p&gt;To jump in the note Remember buffer, simpy call the
&lt;code&gt;remember&lt;/code&gt; function. You will see an empty buffer if you are using it for the
first time and there is no &lt;code&gt;~/.notes&lt;/code&gt; file.
Below your current cursor position you will see the file path from
which you called the &lt;code&gt;remember&lt;/code&gt; function.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;# The cursor will be positioned above the file path
/path/to/your/file.rb
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Add your notes and after you're finished, just call the &lt;code&gt;remember-finalize&lt;/code&gt; function,
or use the default key-binding &lt;code&gt;C-c C-c&lt;/code&gt;. By default the note will be
stored in &lt;code&gt;&amp;lt;your_home_directory&amp;gt;/.notes&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="text"&gt;** Mon Sep 12 16:02:03 2011 (Refactor)

Refactor

I should refactor some code smell in this file...

/path/to/your/file.rb
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Done. That's it! That's the easy way to use it without any magic
and store your notes on the fly.&lt;/p&gt;

&lt;h3&gt;More functions&lt;/h3&gt;

&lt;p&gt;There are a few other functions which are also very useful.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;remember-destroy&lt;/code&gt; just destroy the current Remember buffer you're in.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;remember-region&lt;/code&gt; without opening the selected region in the Remember buffer - it saves the text directly into your notes file.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;remember-clipboard&lt;/code&gt; writes your current clipboard contents to your notes file.&lt;/p&gt;

&lt;p&gt;I would recommend that you just inspect the source of Remember on your own to get
an overview of the full functionality.&lt;/p&gt;

&lt;h3&gt;Some customization&lt;/h3&gt;

&lt;p&gt;To change the file name in which you want to store your notes from
&lt;code&gt;.todos&lt;/code&gt; to &lt;code&gt;.notes&lt;/code&gt; just overwrite the &lt;code&gt;remember-data-file&lt;/code&gt; variable.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defcustom&lt;/span&gt; &lt;span class="nv"&gt;remember-data-file&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;convert-standard-filename&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;~/.todos&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="s"&gt;&amp;quot;The file in which to store unprocessed data.&amp;quot;&lt;/span&gt;
  &lt;span class="nv"&gt;:type&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;file&lt;/span&gt;
  &lt;span class="nv"&gt;:group&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;remember&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Or the leading text, which is used to begin each created note.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;defcustom&lt;/span&gt; &lt;span class="nv"&gt;remember-leader-text&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;** &amp;quot;&lt;/span&gt;
  &lt;span class="s"&gt;&amp;quot;The text used to begin each remember item.&amp;quot;&lt;/span&gt;
  &lt;span class="nv"&gt;:type&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;string&lt;/span&gt;
  &lt;span class="nv"&gt;:group&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;remember&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;Further information&lt;/h3&gt;

&lt;p&gt;A lot of people use Remember with org-mode (&lt;a href="http://orgmode.org/org-remember.pdf"&gt;org-remember&lt;/a&gt; documentation).
But since version 6.36, org-mode has its own Remember-like feature
implemented (see &lt;a href="http://orgmode.org/manual/Capture.html"&gt;Capture&lt;/a&gt;),
If you're using org-mode already, I would recommend to use that instead of Remember.&lt;/p&gt;

&lt;p&gt;In a further article I will show you how to use Capture, instead of Remember and how org-mode serves you some cool features with Capture.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=F1LEMAwosh0:ohAEFjL7C5g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=F1LEMAwosh0:ohAEFjL7C5g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=F1LEMAwosh0:ohAEFjL7C5g:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=F1LEMAwosh0:ohAEFjL7C5g:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=F1LEMAwosh0:ohAEFjL7C5g:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=F1LEMAwosh0:ohAEFjL7C5g:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=F1LEMAwosh0:ohAEFjL7C5g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=F1LEMAwosh0:ohAEFjL7C5g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/emacsrookiecom?a=F1LEMAwosh0:ohAEFjL7C5g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/emacsrookiecom?i=F1LEMAwosh0:ohAEFjL7C5g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    </item>
    

  </channel>
</rss>

