mirror of
https://github.com/correl/correl.github.io.git
synced 2024-12-28 03:00:04 +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
|
#+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
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