mirror of
https://github.com/correl/correl.github.io.git
synced 2024-12-27 11:07:35 +00:00
Update the emacs org mode draft
This commit is contained in:
parent
abf12995f0
commit
f5b9da49d0
3 changed files with 77 additions and 33 deletions
|
@ -3,17 +3,32 @@
|
|||
#+STARTUP: indent
|
||||
#+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
|
||||
I've been using Emacs Org mode for nearly a year now, mostly as a
|
||||
tool for breaking down large projects at work into tasks and
|
||||
subtasks, and found it to be extremely enter projects in as a
|
||||
hierarchy of tasks and task groupings. Using columnview, I was able
|
||||
to dive right into scoping them individually and reporting total
|
||||
estimates for each major segment of work. Because Emacs and Org
|
||||
Mode make building and modifying an outline structure like this so
|
||||
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
|
||||
information into our issue tracker and get underway.
|
||||
Most of what I've been using [[http://orgmode.org/][Org mode]] for has been breaking down large
|
||||
projects at work into tasks and subtasks. It's really easy to enter
|
||||
projects in as a hierarchy of tasks and task groupings. Using
|
||||
[[http://orgmode.org/worg/org-tutorials/org-column-view-tutorial.html][Column View]], I was able to dive right into scoping them individually
|
||||
and reporting total estimates for each major segment of work.
|
||||
|
||||
[[img:emacs-projects.png][Example projects org file]]
|
||||
|
||||
Because Org Mode makes building and modifying an outline structure
|
||||
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
|
||||
More recently, I've been looking into various ways to get more
|
||||
things organized with Org mode. I've been stepping through
|
||||
|
@ -27,23 +42,26 @@ interpreter.
|
|||
* Exporting and Publishing Documents
|
||||
Publishing my notes with org is also a breeze. I've published
|
||||
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
|
||||
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
|
||||
While learning all the cool things I could do with Org mode and
|
||||
Babel, it was only natural I'd end up using it to reorganize my
|
||||
Emacs configuration. Up until that point, I'd been managing my
|
||||
configuration in a single init.el file, plus a directory full of
|
||||
mode or purpose-specific elisp files that I'd loop through and
|
||||
load. Inspired primarily by the blog post, [[http://zeekat.nl/articles/making-emacs-work-for-me.html]["Making Emacs Work For
|
||||
Me"]], and later by others such as [[http://pages.sachachua.com/.emacs.d/Sacha.html][Sacha Chua's Emacs configuration]],
|
||||
I got all my configs neatly organized into a single org file that
|
||||
gets loaded on startup. I've found it makes it far easier to keep
|
||||
track of what I've got configured, and gives me a reason to
|
||||
document and organize things 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 GitHub.
|
||||
While learning all the cool things I could do with Org mode and Babel,
|
||||
it was only natural I'd end up using it to reorganize my [[https://github.com/correl/dotfiles/tree/master/.emacs.d][Emacs
|
||||
configuration]]. Up until that point, I'd been managing my configuration
|
||||
in a single init.el file, plus a directory full of mode or
|
||||
purpose-specific elisp files that I'd loop through and load. Inspired
|
||||
primarily by the blog post, [[http://zeekat.nl/articles/making-emacs-work-for-me.html]["Making Emacs Work For Me"]], and later by
|
||||
others such as [[http://pages.sachachua.com/.emacs.d/Sacha.html][Sacha Chua's Emacs configuration]], I got all my configs
|
||||
neatly organized into a single org file that gets loaded on
|
||||
startup. I've found it makes it far easier to keep track of what I've
|
||||
got configured, and gives me a reason to document and organize things
|
||||
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
|
||||
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
|
||||
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
|
||||
|
@ -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
|
||||
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
|
||||
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
|
||||
|
@ -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
|
||||
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
|
||||
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,
|
||||
|
@ -87,12 +124,19 @@ in time, and get a better idea of how long it takes me to do
|
|||
different types of tasks.
|
||||
* Conclusion
|
||||
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
|
||||
mode lends itself to doing all sorts of things, be it organizing
|
||||
notes, keeping a private or work journal, or writing a book or
|
||||
technical document. There's tons of functionality that can be
|
||||
built on top of it, yet the underlying format itself remains
|
||||
simple and easy to work with. I've never been great at keeping
|
||||
myself organized, but Org mode is such a delight to use that I
|
||||
can't help trying anyway. If it can work for me, maybe it can work
|
||||
for you, too :)
|
||||
scratched the surface. The simple outline format provided by Org mode
|
||||
lends itself to doing all sorts of things, be it organizing notes,
|
||||
keeping a private or work journal, or writing a book or technical
|
||||
document. I've even written this blog post in Org mode! There's tons
|
||||
of functionality that can be built on top of it, yet the underlying
|
||||
format itself remains simple and easy to work with. I've never been
|
||||
great at keeping myself organized, but Org mode is such a delight to
|
||||
use that I can't help trying anyway. If it can work for me, maybe it
|
||||
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
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
BIN
images/emacs-projects.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 60 KiB |
Loading…
Reference in a new issue