Why and how I use Org Mode for my writing and more
evalapply.org
evalapply.org
For example,
- org mode will fill out/align an ascii table if you start it and tab. When you change a cell, just tab, and everything aligns into a well-formed table again. Great!
- org mode will let you type latex and then `C-c C-x C-l` to render those latex snippets in text. Lovely!
- but the table logic is unaware of whether $latex-snippets$ have been rendered or not, so you can't see an aligned table whose cells contain latex snippets
Yes, one could do the whole table in latex, but this is more verbose and more fragile if one is incrementally building out the table as one takes notes, and occasionally previewing to confirm it's not broken.
Roughly, I think this illustrates a key tension where
- if everything is pure text, then improving tools is 'easy'
- but people don't actually want pure text for all uses; for some domains, dealing only with text requires some mental energy which can detract from the actual task of interest
Is it perfect? No. But pragmatic.
Does org mode have semantic understanding of keywords and a language AI to record my tasks for me? Then it's doomed. Does it sync in the cloud and have world class security (only storing decryption keys at rest in specialized hardware, locally on a TPM like device)? Then it's doomed. Does it have beautiful graphical interfaces for tablet, phone, and PC? Then it's doomed. Does it require you to learn how to use an antiquated text editor that only a small niche of non-programmers are using? Then it's doomed.
You can use org mode even if it is doomed to be irrelevant to normal people. It will continue to work. But it's not magic, please STOP TELLING ME IT'S MAGIC. It's not better than what's out there. There's companies sinking tons of money into todo apps and note taking apps that are integrating modern technologies that make any advantage of org mode complete obsolete in the world of advanced GUIs and language models.
While Bear has some cool features, so does Org mode. I personally like that I can author blog posts in it, put in some code in SageMath within my org document, and whenever I export the org file for publishing, it will execute that code.
I like that I can make a note and simultaneously link to an email I have, link to some code in a .cpp file, and link to a Jira ID.
I like that I can log how many minutes I spent on a writing project, and have it automatically enter that data into Beeminder.[1]
And so much more that I'm sure Bear doesn't do.
- I can share a note with my wife and kids and they can live edit together.
- I can encrypt my notes and share them across the cloud.
- I can send my notes in an email, I can embed photos, videos, emails, messages in my notes.
- I can send my notes directly to my reminders and attach them to a reminder.
- I can can documents and sketches directly from my notes.
- My notes automatically look for keywords to turn into dates and reminders.
- My notes can add tags and have automatic backups and recovery.
You can also put code blocks within a note, export it, and then run it through a code executor, which is way safer than having some sort of editor automation that will slurp up a random note and hack your computer and steal all your credit card info.
I have tried a couple of these SaaS note-taking apps and I've immediately hated them. Too much fluff, too much bullshit only put in to justify charging a price for what is effectively notepad running in a cloud. No, I don't need to sync or share anything. I don't need integration with 50 other useless cloud products. I have very little use for software which is proprietary and can't be arbitrarily beaten into submission to do what I want, and only what I want. I have no interest in software which is mobile first and has no decent native app. And no, electron doesn't count.
Acting as though you have the superior taste and everyone who disagrees with you is just out touch only weakens your argument.
I'm not interested in hearing about how you hate the cloud, or you need a terminal based mail editor because "bells and whistles don't appeal to you", or you need to control every aspect of your system down to the ROM to get anything done. Most of us just want to get stuff done and focus on our actual problems, and that's easy to see - big corpos aren't building out your dream world because no one wants it, that's capitalism baby. Most of us want a secure cloud. Most of us want nice, modern, easy to use features and the advances that have come with decades of UX and AI research.
Most of us don't care for the bulk of what gets posted on HN. I'm not seeing the relevance of the diatribe.
Just because others like something doesn't mean there is pressure on you to. Just because you like something else doesn't mean you need to go post about tools that serve a very different purpose.
This is the equivalent of posting on a Rust submission why you like Haskell so much more. Who cares?
Are you even hearing yourself.
Do you comprehend the basic fact that there can be more than one good tool?
> which is way safer than having some sort of editor automation that will slurp up a random note and hack your computer and steal all your credit card info.
It sounds like you have no idea about Org mode and Emacs.
I recently messed around with org-drill, found it wasn't really behaving like I wanted it to, decided to change it myself, and then was pleasantly surprised to find that changing its basic functionality was way easier than I expected (and I've barely started learning lisp/elisp.
This is screaming for a blog post entry. It's pretty cool.
- started using a pomodoro timer in emacs
- noticed I wasn't using getting up for breaks
- thought about how to fix it
- added `(switch-to-buffer "~/reminder.txt")` which read "HEY! go on a break" to the "org-clock-out" hook that was called by the pomodoro timer
In about 5-7 minutes I permantely fixed my issue thanks to the extensibility of emacs.
I think a lot of these things don't get shared or posted because to the initiated they seem trivial. Or it's hard to know what level of experience should be assumed.
I think "start with vanilla emacs and show how to do this one thing" might be a good place though.
As for how to share in the blog post, I would not recommend starting with vanilla emacs - that would make for a really long blog post. Perhaps just vanilla org config (for people like me who don't use org clocking abilities). Simply post the problem you had and the code you wrote to fix it. Then post it to the Emacs Reddit and Mastodon (you'll get much more engagement from the latter if anyone on your instance/followers is an Emacs person).
What keeps me in the org life is that whenever I've wanted to do X, orgmode itself and the wider ecosystem have answered "sure, here you go".
And, personally, any learning curve + configuration overhead has been worth it because it composes as a unified system. My brain fares poorly if it has to jump between contexts for a single task (e.g. write lecture/talk notes, separately make a slide deck to present, separately make a live notebook / repo to run a demo, and then have to bounce between the three at run-time).
I don't know... each to their own. This works for me, and I wish others tools that work for them. Life is too short for the annoyance borne of bad-fit personal tools.
edit: clarify opening line
(What's the best way to deal with it? Are there plugins for the org/markdown etc. format that allow you to search the "invisible" markup-stripped text?)
In practice, I find org-mode to be much less "noisy" than latex or html for example, and about the same as markdown, so it's still a net win for me.
https://orgmode.org/worg/org-tutorials/advanced-searching.ht...
1. Search link text only.
2. Search link URL only.
3. Search headings only.
4. Search under the current heading only.The first two are interesting use cases though, I'll reply again if I find something that works.
I, for one, will now go down this rabbit hole ...
1. only show the list of headings, not highlight the actual text (and I don't need a new pane for such a simple search, my regular search happens right in the text area)
2. doesn't ignore markup, so `/simply/ search` with one word italicized can't be found with `simply search`
From Emacs, I just don't search in org-mode, I search into typically my entire user directory, in both .txt files, source code files, .org files, etc. using "counsel-rg" (just a wrapper around ripgrep).
It's super quick. I enter, say, at the Emacs rg prompt:
gmp lib
So that's "gmp<space>lib" and it'll find every line, in any single file, no matter it's format, where, on the same line, there's "gmp" followed by, anywhere else later on the line, "lib", no matter the capitalization.The wrapper around rg takes care of calling it with the correct magic invocation.
Say I type: "pi rypi" then Emacs/counsel shall spawn a call to rg looking like this (it's configurable):
/usr/bin/rg --max-columns 240 --with-filename --no-heading --line-number --color never -i "(pi).*?(rypi)"
And, well, I much prefer to enter simply "pi rypi" and have "(pi).*?(rypi)" generated for me.I've got the call to "counsel-rg" assigned to a shortcut.
I use it all the time.
P.S: ripgrep is an amazing tool written an HN'er, burntsushi. It's really fast and, by default, won't search into many files you don't care about anyway. It is so fast that on my relatively modern machine (AMD 3700X / NVME M.2 PCIe 3.0x4 SSD) I don't bother and typically search from the root of my home directory.
https://github.com/doomemacs/doomemacs/blob/master/modules/c...
For more semantic searching I use https://github.com/alphapapa/org-ql
For my very large org-roam I'm investigating taking advantage of search in sqlite more.
I mostly use it because it allows collapsing text and don't use any advanced feature. I'll sometimes include pictures and a piece of code here or there but it's really mostly just text (I take it that's the whole point !?).
And it'd say it's already quite good even when used in that "dumb" way.
My personal use case was just plaintext notes, for quite a while. I still haven't included pictures anywhere (as in display inline). So you are more advanced than I, at least in that department :)
That way they don't have to remember any bindings, however I point out that the bindings are listed in case they every have interest in memorizing frequently used ones.
I do not like vim. I think the whole concept of modes is stupid. So when I see an article about vim, I skip it.
Yes, I am telling you to go fly a kite.
Personally, my org workflow eases collaboration with people, because it removes friction for me, going from thoughts -to-> working document + code examples + plaintext diagrams and more.
Frequently I have started technical, architectural, business documents in my local org file, and once I'm happy with it, exported to markdown for upload to the team wiki.
It is a hard sell for group collaboration, compared to, say, markdown. But I would also say that such things are very context-dependent and group policy-driven. e.g. I know of one or two groups that foreswore markdown for ASCIIDOC as their standard text format for collaboration.
Wrote first draft in org, exported to docx. Then every time someone made a change, I'd export back to org and version control it. The other party never had any idea. It was much easier seeing the changes he made by diffing the org files than by using Word's track changes mode.
To-do lists, work journals (immensely useful as a knowledge base especially in short gigs), assignments, coding, the lot.
I wrote most of my 90,000-odd word doctoral thesis in it.
Notepad++ supports tons of keyboard shortcuts and has useful plugins.
I can write neat LaTeX in it. I write research papers with it. It will save into any format I want and open almost any format I give to it.
It is that simple, and that convenient, that I will never ever change tool, and no amount of write-ups of alternative personal knowledge bases on HN (and there are many, oh so many) will convince me otherwise.
The not so subtle meta-point of my post is to create a system around one's personal workflows and tastes. As I've stated in the post, orgmode was easy access for me because I was already using Emacs as my daily driver. Before my Emacs days, were my MS Office days, during which time OneNote was my go-to corporate survival tool and daily driver.
Sounds like you've sorted yourself out handsomely.
This is, ah, noteworthy :)
I'll also upvote the mention of BrainTool. It's so damned good!
https://www.evalapply.org/posts/why-and-how-i-use-org-mode/i...
I don't use Doom, but it seems to have pre-configured location for the default orgmode file, which, of course you can change at will.
ref: https://docs.doomemacs.org/latest/modules/lang/org/#/configu...
A formal grammar for Org: https://lists.gnu.org/archive/html/emacs-orgmode/2021-04/msg...
I think that makes more sense than full blown LSP.
But on a more serious note, would you agree that an LSP server at par with Emacs Org Mode will validate the sufficiency of a standard grammar?
That in turn will allow all sorts of apps to bloom. Right now everyone is having to roll their own for whatever subset of org they choose to support. And the fact of having to roll one's own is the limiting factor for feature support. Which isn't terrible, because partial compatibility can work just fine.
I use to to generate nicely formatted latex letters, resume, markdown for uploading to a website, etc.
https://hackage.haskell.org/package/org-mode
Sadly noweb tangling isn't very well implemented for any parsers I know of.
Cheers,
I love org-mode, I've lived the org-mode life, I ran a consultancy entirely off of it (time tracking, invoicing, task list management), I wrote a book in it... But boy, it was not reproducible. It is maybe salvageable because it's plaintext. It's definitely easy to version control. But tons of stuff, including e.g. details of how exports and tangling worked, broke between org versions.
TL;DR: I love org but I think this is overstated unless you use a pretty small, vanilla subset of org-mode.
Better still, if you've blogged about it, I will be happy to link across, in context.
You are correct in ascribing my enthusiasm to a narrow use-case.
Maybe this is changing? I pretty heavily use noweb features for instance.
Hm, it seems like you mean reproducability of export though which I don't use as much.
I've aimed for density, and proportions defined under a modular scale. As far as I've seen it appears to work as I want it to (my devices, friends' devices) --- body text lines are compact but not squashed.
Ref: https://www.evalapply.org/static/css/style.css
line-height: var(--scale-l);
font-size: var(--scale-l);
I will think about it... there are some other typographic niggles I should like to fix. Maybe this will be my excuse :)We evaluated the org mode plugins for vscode and even the very important use case of folding/unfolding headings was pretty bad.
Went like this:
teammate: vscode org plugins can't even fold/unfold with good bindings? teammate: What shortcuts do you use for folding/unfolding" me: tab and shift-tab teammate: just give me basic emacs
So I setup a basic emacs config with context-menu-mode and recommended learning these shortcuts:
- TAB/shift-tab for folding/unfolding
- alt arrow keys for moving up/down and promoting/demoting
- ctrl+enter for making a new heading
and the guiding principle of "if you get confused go to the menu bar" or look at the ugly but helpful context-sensitive toolbar.
- Zettelkasten
- Pomodoro
- Org mode
- 4 day work weeks
I think we all know using difficult tools tickles our programmer brains, but you have to ask yourself, is this really better than using Bear etc. in 2023 for 99% of your note taking needs?
#+call: something(foo=bar, list=baz[,0]) this level of features just does not exist in Markdown.
Just not what it was designed for.
The benefits of org and babel are precisely that you can do it in whatever language you’ve written the rest of your literate programming document.
As with most of these spectrums, markdown is less powerful and less complicated. Babel is one of the more confusing parts of org mode.
Giving presentations from org mode is sweet, because you can execute any code or examples right from the slides. Management doesn't need to know what the underlying tech is.
Having a Google Docs like platform would be very cool though. I'm surprised there isn't a secure P2P framework that can do this in a browser yet.
Overleaf for Latex is cool, but something that could operate on any plain text file like Markdown, org-mode, or Yaml seems like a cool idea: I suppose VSCode kinda supports this idea at the moment with extensions and remote sessions.
If you just want to get stuff done, then something like Obsidian/Bear is really good. I actually swapped from many years of org-mode/roam to Obsidian myself about 6 months ago. My main reason was mobile integration like you mention. Obsidian sync is actually magic for me, a bit like Dropbox was for files.
People don’t use org mode because it tickles their brain; I don’t at least. I use it, just to take notes and manage tasks, because nothing else worked. I didn’t start using org mode planning to be a devotee. It was just another iteration of trying a note-taking and time management solution. Noteable other failed approaches include Todoist, an old school paper agenda and notebooks, or an attempt at using the iPhone’s built-in reminders and notes. Finally I’ve stuck with something. It’s a testament to how good org is that it delivered enough value while I was still picking up Emacs (for the purpose of using org) that I stuck with it.
Contrary to your point about org mode getting negative comments from management, my notes and scheduling in an org doc have gotten praise from my managers during Zoom screen shares. It probably only evokes comments because it’s different (as opposed to particularly impressive) but they are definitely positive comments.
It’s mostly not wanting to learn Todoist. I’d rather learn org mode knowing it’s mature. It drives me nuts when corps change the tools I use. Don’t fix it if it ain’t broke, you know? The risk of having a workflow-breaking change at an annoying time stresses me too much. Org mode changes at a much slower pace, and it’s much easier to use an older version of org while I adapt to the changes.
There’s definitely nothing I do in org that can’t be done in Todoist. So theoretically Todoist would actually be better right now because of the mobile integration. I really like knowing that there’s a lot of room to grow with org mode, though. The workflow I aspire to is much more possible with org mode in the long run.
Isn't it incredible that we've lost the ability, as a culture, to be on top of things without our pocket supercomputers?
I don't need org mode on my phone. I dont need it on every device I own. I use org mode on my PC, and if I need any form of portability I can jot stuff down on a little piece of paper.
Also, it's just text. We have countless services that can synchronize plain text files. Stop being whiney and pick one.
> And I’m sure managers love it when their employees need to give a presentation and they pull out the old trusty pine book
Stop being so snotty.
> and start presenting something they made in emacs…
Yeah, I love an editor talk actually. Presenting with an editor is a strong signal that a meeting is low-bullshit.
I had a professor who would teach from Emacs. She would store each section of the lecture in a register and paste as she went. (Watching her cursor flit around the buffer was actually strong encouragement for me to learn Emacs; it was nice to see how deftly it could be done without interrupting the flow of the lecture.)
She had slides too, but obviously being in Emacs for these portions allowed interactive displays of code execution.
I think there are two kinds of bullshit relevant to meetings. One is spin or dishonesty, and the other is wasting people's time. Presenting with an editor can mean that what's about to be presented is honest and straight-forward, being grounded in the actual matter being discussed. Or it can mean that an engineer did zero prep for the meeting.
And then type that back on a computer? No, thanks, no desktop-oriented note format is ever worth going back that deep into the caves
It really seems like people hate org-mode just to hate it, because they've heard so much praise that there needs to be some sort of counter-culture. Even if it doesn't actually make sense.
They are noting a serious gap in its capabilities. I say this as a long-term org user, too -- I've tried to mobile tools, and they don't work for me.
Org is great if you live in emacs and have no need or desire to access that corpus of data when you're not sitting at a computer. But in 2023, that's a pretty serious drawback, and pretending it isn't is a weird look.
I mostly referring to the "why do people keep bringing it up - it's such a joke" aspect. Well, it's obviously because lots of people find it awesome and more than adequate.
Org-mode files are text files. Anything that can sync text files will happily sync them. Anything that can edit text files can happily edit them. Sure, emacs is the best way to work with org files, but nothing is stopping you from syncing it with whatever you want (I use Nextcloud) and editing it with whatever you want.
I feel like this is such a key feature of org mode that people are missing. It isn't magic. It's just text, with a buttload of convenience functions that happen to be written in elisp.
The inability to fold headings alone is a dealkiller, and enough reason to look for something else. Which is why Obsidian is so interesting to a lot of folks who use orgmode but are not attached to emacs at a religious level.
https://plainorg.com author here. Got plenty of happy iOS users doing those things.
cf. the section: https://www.evalapply.org/posts/why-and-how-i-use-org-mode/i...
I've tried all of them, paid for some of them and while the best, Beorg, is an excellent TODO-app, nothing available beats the ease of use of a good Markdown editor. If all you want to do is add some notes somewhere or look something up, which I'd argue is the main use case for Org-like files on a mobile device, you'll have to make do with the simplest of text editing tools.
This is unfortunate, because, even though org is plain text it is very messy plain text and without a good tool it is unpleasant to use.
Contrast this to Markdown, which has dozens of tools available, with all the syncing options you can think of and it becomes obvious that Org, despite having fantastic features, and arguably being a better format than Markdown, is only useful inside Emacs.
This is fine if you live in Emacs and only in Emacs, but if you don't and you'd like to read and modify your files on the go, simply going with the format that for better or worse the rest of the internet has standardized upon, is the much better option.
I've got ten years of orgmode buffers and I'm actively working to transition to Obsidian because the mobile story is so much better. With plugins like tasks, dataview, and outliner, I can do pretty much anything in Obsidian I could do in Org, and I can do it on my iPad without having to SSH to my Linode instance first.
that's powerful.
In Org, we can do things like this:
* Outline element
text under this element
** Child of outline element
some text that belongs to the child element
etc.The outliner plugin for Obsidian is "outline only," if you take my meaning, so there's no provision for non-outline text in the outline.
Basically, in my imagination, I invented Orgmode and agendas, so I was super happy to discover that it already existed. That capability is weirdly rare in note tools and outliners. (I'm honestly still amazed that OneNote doesn't have this feature -- it seems like a complete no-brainer, and yet...)
Anyway, it's also a simple enough mod of the existing outliner plug-in that I'm hoping someone like me (ie, coming from org) will introduce it as an alternative plug-in. Honestly, a plug-in that would just parse the basics of org markup would be awesome -- with dataview, I don't need it to be capable of agendas or anything. I just want the markup & the outliner behavior.
I think it's fair to say that for the task of markup only, Markdown is lighter weight and it makes sense that it's implemented (slightly differently) nearly everywhere.
On the other hand, org-mode replaces Jupyter notebooks, LaTeX, and a dozen other things. This is why I keep using org-mode - not because it's better at markup, but because it's "good enough" at markup, and simultaneously "good enough" at many other things.
Many things in org-mode are modifiable. For example the "status" of a heading like "TODO", "DONE" and so on. You can add new words in document wide properties at the top of an org file.
I know there are markdown dialects, that partially cover this or that feature, but none to cover all that org provides out of the box.
The org format is much more suitable for any technical or scientific or academic document, that has any slightly raised requirements. In Markdown one often finds oneself using workarounds to make something look nice in the rendered output. Similar to how restructuredtext is powerful and can be used for academic paper writing and all that. Markdown is merely the lowest common denominator, too minimalistic for my taste. Good for a chat or messenger, but not really for good technical documents.
I still have to see a tool for writing markdown, that works as nicely as tooling for org-mode in Emacs, with all the things like changing heading levels for 1 heading or a whole subtree and export buffer or subtree, or cut visible or subtree, widen, narrow, folding, and all those nice things.
Speaking from an android perspective:
Best is organice (but requires local android webdav server if you don't want to connect to github) for most people design-wise I think.
Others will prefer orgzly.
> This is fine if you live in Emacs and only in Emacs, but if you don't and you'd like to read and modify your files on the go, simply going with the format that for better or worse the rest of the internet has standardized upon, is the much better option.
emacs is available on fdroid now and using a bluetooth keyboard it's a good experience. I hope to improve the touch experience, for instance I recently released a library to make clocking in/out on mobile or just by mouse easier:
https://github.com/ParetoOptimalDev/org-inline-clocking-butt...
I intend to try and make org-mode usable by touch in emacs on android eventually, but it'll be slow and according to things I really need as I need them.
This in my mind is just sloppy, overcomplicated, rent-seeking crap. It fails to meet even a single of the fairly rudimentary features i need for note-taking. Even a terrible text editor like nano would be more useful.
Org is easier to use and more capable now than it was then, and so is the tooling around it. That includes mobile; most, maybe all, of the apps linked from the article didn't exist back then, and there are several others not mentioned there. The community's grown significantly, too.
So I'm not sure what point you think you're making here, but what I'm hearing is that you don't feel the need to have any familiarity with a technology before offhandedly dismissing it as meme nonsense apparently on the strength of a lot of people trying it and finding it good enough to be worth talking about. I wouldn't be comfortable with making such a showing of myself, but tastes differ, I suppose.
"Who even needs a phone that doesn't have top-of-the-line imaging sensors! Are you going to take your engagement photos on that?"
Completely missing the point.
Of course, Powerpoint is superior in some ways, so I still use it. And if the manager needs a document he can make changes to, then I'll use Powerpoint. But these are exceptions, not the rule.
> but you have to ask yourself, is this really better than using Bear etc. in 2023 for 99% of your note taking needs?
Only works on Apple? A non-starter for me. I type way better on a keyboard on my Linux machine, so any note taking app needs to work on it. And Org mode has been around for 20 years. I have notes I wrote almost 15 years ago in it. I want some guarantee that whatever tool I use will work 20 years from now.
As a general rule, if you have to pay for a niche tool to use it, do not expect it to last two decades.