HowmMode

Introduction

Howm allows you to take notes fragmentarily and browse them collectively. It has hyperlinks and full-text search like EmacsWikiMode. It is a minor mode and can be combined with other modes.

There is no distinction between pages - each record can be arbitrarily timestamped, hyperlinked, and displayed with other related pages in one buffer, if needed. Quite convenient if one wants what did he put in about X, and next day - what was marked as Y. Very practical tool for organizing notes into ad-hoc searchable ontology.

The interesting thing about this mode is that it doesn’t only have “normal” forward pointing links – it also has backwards pointing links:

Goto link: These can point to keywords or to filenames.

      >>> ~/BabyloniaWave.txt
      >>> highway planet

Come-from link: These can point “from” keywords.

      <<< crystal star cluster

The string ‘crystal star cluster’ in all other files will now automatically point here.

Todo and Notifiers are created as you type and displayed in a separate buffer according to the importance, so you can click and see the context of the appointment.

The format is as follows:

[YYYY-MM-DD]- sink after the date (reminder)

[YYYY-MM-DD]+ float after the date (todo)

[YYYY-MM-DD]! float until the date (deadline)

https://howm.osdn.jp/menu.png


As for recurring scheduled tasks, you can simply list them 😊

      [2005-06-13]@ hogehoge
      [2005-06-20]@ hogehoge
      [2005-06-27]@ hogehoge
      [2005-07-04]@ hogehoge

A method to input such lists is described in https://kaorahi.github.io/howm/README.html

Thanks to SebastianBlatt for this question; it was not documented in English. I am lazy and tend to leave problems until someone gives comments. --khi
That’s pretty convenient, thanks! One more question, though: is it possible to get howm to query the diary file or abuse diary-lib (diary-mode supports cyclic tasks and also has a nice entry format to specify e.g. the third Monday of August), so that I wouldn’t have to enter holidays by hand every year? …yes, I know I’m lazy. 😊 --SebastianBlatt

Some codes to integrate howm and diary are found in HowmAndCalendar (pasted by --DavidOtoole for convenience) (Please search the word “mark-calendar” in this page).

These codes provide the below features.

(calendar to howm)

(howm to calendar)

See also: PlannerAndHowmComparison

Discussion

I have a question: is it possible to show and maybe highlight “missed” appointments in the Schedule section? That is, appointments of the form “[date]@ text” that were not explicitly finished by hitting RET on the “@”? --SebastianBlatt

This should work. --khi

    ;; show schedule items in menu...
    (setq howm-menu-schedule-days-before (* 365 30)) ;; from (today - X days)
    (setq howm-menu-schedule-days 7) ;; to (today + Y days)

Highlighting is not available at now. How about “separators” instead?

    (setq howm-menu-reminder-separators
          '(
            ;; missed
            (-1  . "----------- m -----------------")
            ;; today
            (0   . "----------- 0 -----------------")
            ;; 1-3 days
            (3   . "----------- 3 -----------------")
            ;; 3-7 days
            (nil . "----------- t -----------------")
            ;; todo
            ))

Is there any way to have “templates” in howm ? I mean, I’d like to create all my notes and put them in a “inbox” category (goto-link) so that I could review them easily at each end of day ? Also, is there any possibility exclude certain tags when searching for notes ? – XavierMaillard

Yes. Please read docstring of the variable ‘howm-template’. You can exclude certain notes by typing C-u f contents RET or C-u f summary RET in howmS buffer. – khi

Yes, I have seen it after having asked it here … – XavierMaillard

I already have a directory of notes. Can howm-mode take it from there ? ychaouche

Answer from khi:

; howm-mode :)
;; search other directories in addition to `howm-directory'.
(setq howm-search-path '("/path/to/notes/directory" "/path/to/other/notes/directory"))
(setq howm-search-other-dir t)

Tips from the Mailing list

More Tips

Mentions

Notes on functionalities and workflows

Stagewise filtering of notes based on grep as well as keywords

Say you are part of a team or project called ABCD and have a frequent number of meetings. These can be captured as notes including a defined howm keyword ABCD.

Now, in those meetings, there would be different topics and linking to other keywords. These keywords can be added to the notes as required.

One specific example that would be often necessary would be links to specific Confluence pages pertaining to a subject. While browser bookmarks would also work - it may be more difficult to maintain context and include notes along with it. Confluence pages tend to have a specific URL structure, like company.atlassian.net/wiki/spaces/XXX. Since these are notes, it is likely you would have some additional ‘description words’ surrounding the link in the meeting note.

The steps to quickly identify confluence links:

1. howm-list-grep-fixed (`C-c , s`) – choose ABCD for obtaining notes mentioning keyword ABCD.

2. howm-search-in-result (`G`) – enter ‘wiki’ (or something else) which will filter above ‘ABCD’ notes to those containing confluence links.

3. If you remember something close to the description words related to the confluence link - you then hit `G` again and search within the filtered notes to find notes with those description words, and finally find the link you need.

With the above method, it is possible to find the desired link, and also have a view of other notes that are related to the description words, and thus being able to form more connections between notes! Note that when you hit ‘G` to grep within results, it is also possible to call up `howm-insert-keyword` (C-c , i) to insert a keyword as a search term, and thus filter based on other howm defined keywords in the filtered notes.

Dired view of filtered notes

Use ‘howm-view-dired’ which is by default assigned to ‘X’ in any ‘*howmS*’ buffer which will provide a virtual dired view of only the files that are currently visible, no matter where the files are located in the specified howm directories. This enables for example copying, or performing other actions on a specific set of files that are in arbitrary locations.

This is also a good way to delete any notes that are empty, since hitting ‘X’ on a particular note will open the dired view with the cursor on that note.

Note: make sure to ‘q’ after viewing the dired buffer, as it seems there may be a bug that locks howm if the function is called again after changing the search term.


CategoryHypermedia CategoryModes CategoryPersonalInformationManager CategoryTodo