Grep your Mind with Emacs, Eev, and Howm
<<< HowmTutorialIntroduction
Overview of howm: "write fragmentarily, read collectively"
"Howm" is a powerful note-taking and hypertext organization tool written in Emacs Lisp, with integrated browser, todo-list, and schedule management.
The slogan "write fragmentarily, read collectively" refers to the spontaneous, stream-of-consciousness note-taking style encouraged by howm. Notes can be created any any time while in Emacs, so a thought may be captured whenever it strikes you.
You can combine plain text, links to relevant files and emails, random thoughts, ASCII art, drafts of essays, webpage links, snippets of code or mathematical equations (via Unicode), output from other programs, todo-list items, schedule entries, and reminders in your notes. You can also categorize notes using Keywords (see below.)
You can then search by keyword (to find notes on a certain topic), search for arbitrary text (for example, you could find web links by searching for "http:"), produce a sorted todo-list report, a schedule of upcoming appointments and deadlines, and more.
About this document
This document is presently very incomplete and under construction.
When I found howm, it was obviously the Right Thing, but there was virtually no English-language help available. Furthermore, although the howm distribution includes an English README file, it doesn't give much overall strategy or usage advice.
I wrote this document to explain to an English-speaking audience why howm works, and how to combine its features effectively with one another and with other tools.
Obtaining and installing howm
Howm can be downloaded from the official website at:
The shell commands below will download, unpack, and build howm 1.3.1, which is the version I used in writing the tutorial. A very useful howm accessory called "snap.el" will also be downloaded.
These next commands will create your personal howm folder, and copy the distribution's very informative default menu file:
Then add the following to your emacs initialization file:
Before you continue
Before reading further, you should become familiar with the basics of howm operation by running through the simple exercises in the official howm README:
It's a terse but effective document. Don't worry about memorizing all the commands or exploring every feature. Just play around with howm, write a few notes, and try to get a feel for the different activities. Then you'll be ready to tackle the strategy advice given in the following sections.
Using howm effectively
Creating notes
Note-taking is the fundamental activity of howm. All your data--- whether plain text, todo list, or schedule---are contained within notes. Press
to run (howm-create). A new note is created, stamped with the current time and date:
The line beginning with "=" is the title, which should be a one-liner description of the note's content. Good titles are important when searching hundreds or thousands of notes.
After typing your title, move down to the end of the buffer and type in your thoughts.
Your notes are stored in a special directory specified by the variable howm-directory. It's useful to keep all your notes together in a "notebook" folder, for easy searching (with grep) and archiving (with tar).
Here's an example of a completed note:
Keywords
Keywords can be used to categorize notes. A note may be marked with many keywords and thus related to many topics. For example, you might take notes on emacs configuration, and mark such notes with
The special marker "<<<" is used to create keywords; everything to the right of the marker is taken as the text of the keyword.
You can edit the list of keywords by visiting the file "~/.howm-keys". I tidy up my .howm-keys file from time to time in order to get an alphabetized list of topics in my brain.
Keyword search
After you create a keyword and save the resulting *.howm file, you may notice that other occurrences of the keyword are now highlighted (even in other files where howm-mode is turned on.) If you move the cursor to one of the occurrences, and hit RETURN, a keyword search is performed.
In keyword search results, closely-related notes (i.e. those that have keyword markers) are first on the list; then come those notes that simply refer to the keyword.
So by creating a keyword, you also create links wherever the keyword occurs.
You can also type the command
to initiate a keyword search at any time.
References
References are like keyword search links, but more general-purpose. References can link to keywords, files, and URL's. As with keyword search links, move the cursor to the text of the reference and hit RETURN to jump to the target of the reference.
Examples:
. : Regular expression search
Browsing notes
Making reminders
Howm's "reminder" feature is a bit misleadingly named. It allows you to add all of the following data types to your notes:
Howm departs from the traditional linear notion of "priority" used in most todo-list managers. Instead a more complex system called "magic sorting" is employed. Each item has a date, reminder type, and "laziness" associated with it. Using this information, howm compiles all your reminders, scattered through many files, into a coherent prioritized display. Multiple views and filters of this data are possible.
To understand magic sorting, think for a moment about how the importance of an reminder influences when and where you would like to be reminded. For example, you'd want to be reminded of deadlines well ahead of time, and when there are multiple deadlines you'd certainly want to see them in date order. The same goes for appointments.
You might want a simple reminder to stay near the top of your to-do list but slowly sink as it gets older---this is sort of like sticking a post-it note on the board, watching it get slowly covered up by other notes.
An ordinary todo-list item should rise in the list as the correct date approaches, and then stay at the top.
A deferred task should neither disappear completely nor bother you all the time. One solution is for deferred tasks to periodically rise and fall in the list.
Completed tasks should sink to the bottom of the list permanently, but retain their ordering so that you can review past progress.
Reminder syntax
(1) rise until date, sink after date at speed Z
Try Z values of -999 on a reminder for one that sinks REALLY slowly...
todo (+)
(7) rise until date at speed Z, stay (z=rise speed)deadline (!)
(7) rise quickly starting Z days before date "I MUST do X by DATE"defer (~)
(30) hide until date; rise and fall every Z days afterward "I am procrastinating and don't want to see it"done (.)
( ) sink forever "I DID X on DATE"schedule (@)
. : Recurring tasks
.. Browsing reminders
todo
schedule
.. Howm-menu
Action-lock
History
Advanced configuration & usage
Howm faces
"Wiki wind" links
[[Snorb]]
.. Keyword aliases
Using snap.el to bookmark application state
Using howm with the Emacs calendar
Searching your Mail, News, and other data
Hierarchical howm documents with allout-mode
Fontifying headers
DocumentMode wiki pages for writing and planning
Using howm with eev-mode
Embedding e-scripts in your notes
Organize your e-scripts with keywords
Embedding howm in other formats
Publishing your files to the web
Tying it all together: your eefolder
Keymap ideas
- question + answer format for some sections, to show activities of howm user. showing how these questions can map onto howm searches.
- What did I accomplish last week? Last month? - When is my appointment with Dr. Smith? - What was I writing about yesterday? - What URL's have I put into my notes this week?