Update the emacs org mode draft

This commit is contained in:
Correl Roush 2014-11-25 20:40:29 -05:00
parent abf12995f0
commit f5b9da49d0
3 changed files with 77 additions and 33 deletions

View file

@ -3,17 +3,32 @@
#+STARTUP: indent #+STARTUP: indent
#+OPTIONS: toc:nil num:nil #+OPTIONS: toc:nil num:nil
I've been using Emacs Org mode for nearly a year now. For a while I
mostly just used it to take and organize notes, but over time I've
discovered it's an incredibly useful tool for managing projects and
tasks, writing and publishing documents, keeping track of time and
todo lists, and maintaining a journal.
#+BEGIN_HTML
<!--more-->
#+END_HTML
* Project Management * Project Management
I've been using Emacs Org mode for nearly a year now, mostly as a Most of what I've been using [[http://orgmode.org/][Org mode]] for has been breaking down large
tool for breaking down large projects at work into tasks and projects at work into tasks and subtasks. It's really easy to enter
subtasks, and found it to be extremely enter projects in as a projects in as a hierarchy of tasks and task groupings. Using
hierarchy of tasks and task groupings. Using columnview, I was able [[http://orgmode.org/worg/org-tutorials/org-column-view-tutorial.html][Column View]], I was able to dive right into scoping them individually
to dive right into scoping them individually and reporting total and reporting total estimates for each major segment of work.
estimates for each major segment of work. Because Emacs and Org
Mode make building and modifying an outline structure like this so [[img:emacs-projects.png][Example projects org file]]
quick and easy, I'd build and modify the project org document as I
planned it out with my team. Once done, I'd then manually load that Because Org Mode makes building and modifying an outline structure
information into our issue tracker and get underway. like this so quick and easy, I usually build and modify the project
org document while planning it out with my team. Once done, I then
manually load that information into our issue tracker and get
underway. Occasionally I'll also update tags and progress status in
the org document as well as the project progresses, so I can use the
same document to plan subsequent development iterations.
* Organizing Notes and Code Exercises * Organizing Notes and Code Exercises
More recently, I've been looking into various ways to get more More recently, I've been looking into various ways to get more
things organized with Org mode. I've been stepping through things organized with Org mode. I've been stepping through
@ -27,23 +42,26 @@ interpreter.
* Exporting and Publishing Documents * Exporting and Publishing Documents
Publishing my notes with org is also a breeze. I've published Publishing my notes with org is also a breeze. I've published
project plans and proposals to PDF to share with colleagues, and project plans and proposals to PDF to share with colleagues, and
exported my SICP notes to html and dropped them into a site built exported my [[https://github.com/correl/sicp][SICP notes]] to html and [[http://sicp.phoenixinquis.net/][dropped them into a site]] built
with [[http://jekyllrb.com/][Jekyll]]. Embedding graphs and diagrams into exported documents with [[http://jekyllrb.com/][Jekyll]]. Embedding graphs and diagrams into exported documents
using [[http://www.graphviz.org/][Graphviz]], [[http://www.mcternan.me.uk/mscgen/][Mscgen]], and [[http://plantuml.sourceforge.net/][PlantUML]] has also really helped with using [[http://www.graphviz.org/][Graphviz]], [[http://www.mcternan.me.uk/mscgen/][Mscgen]], and [[http://plantuml.sourceforge.net/][PlantUML]] has also really helped with
putting together some great project plans and documentation. putting together some great project plans and documentation. A lot of
great examples using those tools (and more!) can be found [[http://home.fnal.gov/~neilsen/notebook/orgExamples/org-examples.html][here]].
* Emacs Configuration * Emacs Configuration
While learning all the cool things I could do with Org mode and While learning all the cool things I could do with Org mode and Babel,
Babel, it was only natural I'd end up using it to reorganize my it was only natural I'd end up using it to reorganize my [[https://github.com/correl/dotfiles/tree/master/.emacs.d][Emacs
Emacs configuration. Up until that point, I'd been managing my configuration]]. Up until that point, I'd been managing my configuration
configuration in a single init.el file, plus a directory full of in a single init.el file, plus a directory full of mode or
mode or purpose-specific elisp files that I'd loop through and purpose-specific elisp files that I'd loop through and load. Inspired
load. Inspired primarily by the blog post, [[http://zeekat.nl/articles/making-emacs-work-for-me.html]["Making Emacs Work For primarily by the blog post, [[http://zeekat.nl/articles/making-emacs-work-for-me.html]["Making Emacs Work For Me"]], and later by
Me"]], and later by others such as [[http://pages.sachachua.com/.emacs.d/Sacha.html][Sacha Chua's Emacs configuration]], others such as [[http://pages.sachachua.com/.emacs.d/Sacha.html][Sacha Chua's Emacs configuration]], I got all my configs
I got all my configs neatly organized into a single org file that neatly organized into a single org file that gets loaded on
gets loaded on startup. I've found it makes it far easier to keep startup. I've found it makes it far easier to keep track of what I've
track of what I've got configured, and gives me a reason to got configured, and gives me a reason to document and organize things
document and organize things neatly now that it's living a double neatly now that it's living a double life as a [[https://github.com/correl/dotfiles/blob/master/.emacs.d/emacs.org][published document]] on
life as a [[https://github.com/correl/dotfiles/blob/master/.emacs.d/emacs.org][published document]] on GitHub. GitHub. I've still got a directory lying around with autoloaded
scripts, but now it's simply reserved for [[https://github.com/correl/dotfiles/blob/master/.emacs.d/emacs.org#auto-loading-elisp-files][tinkering and sensitive
configuration]].
* Tracking Habits * Tracking Habits
Another great feature of Org mode that I've been taking advantage Another great feature of Org mode that I've been taking advantage
of a lot more lately is the [[http://orgmode.org/manual/Agenda-Views.html][Agenda]]. By defining some org files as of a lot more lately is the [[http://orgmode.org/manual/Agenda-Views.html][Agenda]]. By defining some org files as
@ -57,6 +75,8 @@ this file, scheduling them, and setting deadlines, I've been doing
a much better job of keeping track of things I need to get done a much better job of keeping track of things I need to get done
and (even more importantly) /when/ I need to get them done. and (even more importantly) /when/ I need to get them done.
[[img:emacs-org-agenda.png][Agenda view snippet]]
This works not only for one-shot tasks, but also [[http://orgmode.org/manual/Tracking-your-habits.html][habits and other This works not only for one-shot tasks, but also [[http://orgmode.org/manual/Tracking-your-habits.html][habits and other
repetitive tasks]]. It's possible to schedule a task that should be repetitive tasks]]. It's possible to schedule a task that should be
done every day, every few days, or maybe every first sunday of a done every day, every few days, or maybe every first sunday of a
@ -71,6 +91,23 @@ The last thing I've been using (which I'm still getting a handle
on) is using [[http://orgmode.org/manual/Capture.html][Capture]] to take and store notes, keep a journal, and on) is using [[http://orgmode.org/manual/Capture.html][Capture]] to take and store notes, keep a journal, and
even [[http://orgmode.org/manual/Clocking-work-time.html][track time on tasks at work]]. even [[http://orgmode.org/manual/Clocking-work-time.html][track time on tasks at work]].
#+BEGIN_SRC emacs-lisp :exports code
(setq org-capture-templates
'(("j" "Journal Entry" plain
(file+datetree "~/org/journal.org")
"%U\n\n%?" :empty-lines-before 1)
("w" "Log Work Task" entry
(file+datetree "~/org/worklog.org")
"* TODO %^{Description} %^g\n%?\n\nAdded: %U"
:clock-in t
:clock-keep t)))
(global-set-key (kbd "C-c c") 'org-capture)
(setq org-clock-persist 'history)
(org-clock-persistence-insinuate)
#+END_SRC
For my journal, I've configured a capture template that I can use For my journal, I've configured a capture template that I can use
to write down a new entry that will be stored with a time stamp to write down a new entry that will be stored with a time stamp
appended into its own org file, organized under headlines by year, appended into its own org file, organized under headlines by year,
@ -87,12 +124,19 @@ in time, and get a better idea of how long it takes me to do
different types of tasks. different types of tasks.
* Conclusion * Conclusion
There's a lot that can be done with Org mode, and I've only just There's a lot that can be done with Org mode, and I've only just
scratched the surface. The simple outline format provided by Org scratched the surface. The simple outline format provided by Org mode
mode lends itself to doing all sorts of things, be it organizing lends itself to doing all sorts of things, be it organizing notes,
notes, keeping a private or work journal, or writing a book or keeping a private or work journal, or writing a book or technical
technical document. There's tons of functionality that can be document. I've even written this blog post in Org mode! There's tons
built on top of it, yet the underlying format itself remains of functionality that can be built on top of it, yet the underlying
simple and easy to work with. I've never been great at keeping format itself remains simple and easy to work with. I've never been
myself organized, but Org mode is such a delight to use that I great at keeping myself organized, but Org mode is such a delight to
can't help trying anyway. If it can work for me, maybe it can work use that I can't help trying anyway. If it can work for me, maybe it
for you, too :) can work for you, too!
There's tons of resources for finding new ways for using Org mode, and
I'm still discovering cool things I can track and integrate with it. I
definitely recommend reading through [[http://sachachua.com/blog/][Sacha Chua's Blog]], as well as
posts from [[http://newartisans.com/2007/08/using-org-mode-as-a-day-planner/][John Wiegley]]. I'm always looking for more stuff to try
out. Feel free to drop me a line if you find or are using something
you think is cool or useful!

BIN
images/emacs-org-agenda.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
images/emacs-projects.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB