Hacker News new | ask | show | jobs
by westoncb 2627 days ago
I often see things about org-mode showing up on here, and I get the basic idea but I'd like to see a more in depth explanation of why it's so great.

Anyone have a recommendation for an article or video or something on the subject?

2 comments

Org Mode is a dayplanner/TODO list + time tracker + notetaking app + spreadsheet + interactive notebook (Jupyter style) + literate programming tool + publishing platform, all glued into one. It stores all its data in plaintext files that are actually human-readable, and is built on one of the most flexible software platforms that ever existed - Emacs.

The awesomeness of Org Mode comes from how all the little pieces come together to support each other, and how the incremental the learning curve is. You can use any subset of features you like, and you don't pay (in terms of noise in your files) for the features you don't need. When you start, it's just a Markdown with superb editor support. Step by step, you may eventually find yourself organizing your life in plain text.

As the documentation says, Org is a toolbox[0]. You use only what you need, but you can do a lot with it, and everything interoperates to create a whole much greater than the sum of parts (which ordinarily would each be a different application). This is a common theme for Emacs itself too, and the reason some people (myself included) increasingly live in it - there are great benefits coming with thorough interoperability, as every small new thing you learn or add improves almost every kind of task you do in Emacs (org mode included).

As for introductions, there are things that'll show up under "introduction to org mode" search query. I guess you could read[1] to get an overview, play around, and then see what interests you. There's plenty of demonstrations and guides for specific use cases of Org Mode on-line[2], and you can always ask Org users to share their workflow (and config files) :).

--

[0] - https://orgmode.org/manual/Summary.html#Summary

[1] - https://orgmode.org/orgguide.pdf

[2] - Some listed here: https://orgmode.org/worg/org-tutorials/.

I think, the major appeal of it is that it does everything.

Lots of "productivity"-applications are either TODO-lists or meant for note-taking or good for writing down concepts or are knowledge bases.

But you can't really separate these. Often I'll write something down and later realize that I need to do xyx for that. Or that I want to schedule a reminder for this note.

Other times I write something down just to have it written down somewhere and I won't want to see it again until months later. But if I just write it into a random .txt-file, I'll probably never see it again. With it being in the same place as my other notes, todos etc., I will actually find it again.

And other times, you might have this dumb idea for a thing. And then you add some more ideas to this idea. And before you know it, you've written down the entire concept for your next software project in your notes-application. When this happens to me with OrgMode, I really don't mind. Its plaintext-format is just as readable as MarkDown for this use-case. I might very well stick this OrgMode-file into the software repository.

Also, sometimes I will find an article to something in my software project concept and want to note it down there with a reminder to actually look at it. OrgMode allows me to do that.

Eventually this becomes a lot of information in one place, but OrgMode itself has lots of tools to organize that: tags, priorities (from A to whichever letter you like), notebooks (=different files), states (e.g. TODO, DONE, NOTE, and again whatever you like), scheduled times, deadlines, recurring tasks etc.

And then there's obviously also parsers like the one in this post. They can do whatever they want with the plaintext you have there.

Personally, I mostly use the Android-app Orgzly. It has a widget with a simple DONE-button for my TODO-usage. It can throw notifications at me. And it has a really powerful search-feature, allowing to save specific searches and for example select them as the listing to display in the widget. E.g. I only want to see notes with the state "TODO" that are scheduled within the next three days.

I will admit that it's a bit of a rabbit hole, but task/note management in general usually is and this feels better than my previous solutions.

Especially also the fact that it is just plaintext-files that I can sync and backup easily.

Perfect—thanks!

Yeah, my current, main ideas txt file is something called "movies to watch.txt" —which does start with a list of movies, but then I added some random extended thoughts there temporarily and it has grown massively since.

So yep, I may be a good candidate for using OrgMode ;)

I tried out a demo of Notion (https://www.notion.so/) not long ago and was pretty impressed by their editor (similar concept to OrgMode, but wysiwyg, which I prefer if it's done well). It's actually really good (annoyingly you have to give an email address to try, and their other info. isn't nearly as informative as just trying it for a minute)—but I can't bring myself to use it because of the platform lock-in aspect. I want the data stored in a local file and that's it.

Edit: looking a little more though (was watching a video of table creation in OrgMode), I think the emphasis on editing plain text is going to be too off-putting for me: I do want a simple local file that multiple programs could work with, but the text editing required for OrgMode seems way too cumbersome unless you're already an emacs devotee—which I'm not (largely because I've had RSI issues, and rumor is emacs isn't the most ergonomic text input style).

> but the text editing required for OrgMode seems way too cumbersome

If you don't like key-chords then Emacs probably won't work for you, but just in case the video you watched wasn't clear about it, most of the markup is handled pretty much automatically by Emacs. Table creation and editing in particular works pretty much like in a graphical application. For example, if you want to create a table like

    | foo | bar | quux | qwerty |
    |-----+-----+------+--------|
    |  10 |  20 |   30 |     40 |
    |  50 |  60 |   70 |     80 |
All you need to do is insert the first row with the vertical bars to separate fields,

    |foo|bar|quux|qwerty
Then hit `C-c RET` and Emacs turns it into

    | foo | bar | quux | qwerty |
    |-----+-----+------+--------|
    |     |     |      |        |
with the cursor ready on the first cell under `foo`. Then you can just write the value and use tab to move to the next cell like in any spreadsheet program. Emacs will add new rows as needed and adjusts the table formatting automatically as you move to the next field (or when you hit `C-c C-c` if you don't want to move).

There are typical table editing commands available like moving, deleting and inserting columns or rows with [shift+]alt+arrows.

Ah, thanks! That actually is better than what I inferred from the video.
Yeah, just to cheer you on, if you are using Emacs just for Org mode you really can just learn the Org mode commands and use the editor just like you would any other insert mode editor. If you want to do complex editing, then it helps to know Emacs.

However, Evil mode now works pretty amazingly right now if you like Vim. I use Emacs with Evil and Vim practically interchangeably. My biggest frustration is a bug (which is probably unfixable) with how undo doesn't always correspond with a vi command. There are some details with how buffers are specified, etc, but you can customise it to get close.

Spacemacs is a pre-setup Vim setup for Emacs using Evil mode which is highly recommended, though I haven't used it (I like minimal setups). I don't know if anyone has ever setup edit-mode key bindings for Org mode, but I just use the Emacs ones (I was originally an Emacs user before switching to Vim... and then back to Emacs :-P )

Those are interesting ideas. I'm actually not a Vim user either, but it at least has been at the back of my mind for years to to get around to learning. So there's a chance that may work.

I've also been thinking for a couple hours now about how much work it'd be for me to write a small app with the minimal feature set that I'd like from org-mode :) This is almost certainly a terrible idea for me to do in the context of the rest of my life right now.

Using Emacs just for org-mode is actually a pretty appealing option to me considering the description you gave. So I may give that a shot. Thanks!

For the iOS users I can recommend Beorg (https://beorgapp.com/).