Hacker News new | past | comments | ask | show | jobs | submit login
Emacs org-mode examples and cookbook (ehneilsen.net)
386 points by dangom on March 9, 2017 | hide | past | favorite | 161 comments



It's worth noting a great Android client for org-mode has been recently open sourced:

http://www.orgzly.com/

https://github.com/orgzly

https://f-droid.org/wiki/page/com.orgzly

It was a little annoyance we did not have anything as good as this before.


An even better Android client for org-mode:

1. Install the Termux app.

2. Install the Termux API app.

3. Install the Termux api CLI tools via apt. You now have access to clipboard.

4. Install Emacs within termux.

Termux offers an apt-based package management system, and a substantial, though partial, set of Debian-based packages. (592 packages as I write this -- a full Debian archive is >60k packages now.)

There are other tools installable through other package-management archives -- notably python's "pip", which provides tools such as youtube-dl (I've previously mentioned this for offline viewing and listening of YouTube and other video/audio content).

I'm not particularly enamoured of the Android app "ecosystem" on multiple points. Including privacy and quality.


This is a great setup. However, on a small screen phone without a physical keyboard I tend to prefer a touch-based application. I rarely make any edits to my org files, but I often want to have a quick look.


Fair enough, though a larger tablet (8-10") and bluetooth keyboard makes for an excellent mobile platform.

IMO the phone form-factor is too small for any really effective use, and a dedicated dumbphone, or more stationary use of IP-based voice comms is generally a preferred option.

I've almost completely abandoned voice comms, as it happens.


On a tablet, as you said, there's no contest. The termux setup you suggest is superior.


How's the speed? I mean, I use use-package and a bunch of init file optimizations to get Emacs startup time as low as possible, but I can't imagine it being tolerable on my phone. And opening the agenda across my standard set of files would probably be awful.


That is a really funny question. I started using Emacs a relative short time ago on what I still consider a fast machine - 2001 on a dual-processor Pentium Pro at 200MHz with 192MiB of RAM. My phone is one of the lowest-end Android models available today and has a quad-core 1.2 GHz ARM processor and 1GiB of memory. Emacs has not really bloated like other applications over time, it just started out with a lot more feature than workstations in the 1980s (https://en.wikipedia.org/wiki/3M_computer) could handle.


Sad but true, I guess, haha. My Emacs process currently has a RSS of 201 MB, and that's just with my everyday packages loaded. It's amazing to think about the Lisp Machines...


You need spacemacs to help you sop up the spare capacity.


I've only been making occaional use of Emacs (see comments elsewhere -- I've been using vi / vim since the mid-1980s, and have far more muscle-memory there). But I've had no complaints.


Very cool!

Now how do I get Escape, Meta, Alt, Control, Shift?

(Joking aside, serious question.)


You can install and use the hacker's keyboard.

Helm autocompletion also makes working with onscreen keyboards easier


I have a Bluetooth hardware keyboard with esc, alt, control, and shift keys. No meta.

There are programming-oriented software keyboards.


The software keyboards are recommended for all masochists


evil-mode?


I was wondering just a few days ago whether building a nice Mac desktop app or maybe a web app, akin to Ulysses, but for Org file writing/editing, exporting etc. would be a viable idea and whether it could eat some of Markdown's marketshare by not being tied to Emacs, which is why I feel most people don't pick it up.

Would that be something the HN crowd would be interested in?


This will be a tough sell. Org-mode is a fairly fast moving target, due to how easy it is to extend anything in emacs. For lots, you will actually be battling against all of the other extensions in emacs. (For me, as an example, you will have to replace flyspell, beacon, tramp, ace-jump, ido, and ggtags.)

All of this is doable, of course. But it will be a tough sell.

That said, I'd say go for it. Worst case, nobody uses it and you just learn some of the difficulties of implementing. Hard to see that as a failure.


Yeah, it would be fairly difficult to build, which is why getting feedback would be useful, but there's a catch 22; people who already know what Org is are fairly comfortable using Emacs and I don't know how to find out if people not that found of Emacs itself would still find Org useful, or if combining apps like Ulysses and Omni Outliner is good enough for them - the worst part is that because they don't use Emacs, they can't tell me.

This really may be the 'just build it and see' sort of scenario.


I've often about some sort of app that uses Org as a design basis, but stores data in a way that makes it easy to access remotely without having an Org parser, to be easy to sync and query programmatically, and is designed for the modern world in terms of connectivity and interface.

I think that could absolutely kill it.

Imagine writing extensions in js or lua or whatever, and having those extensions have clear DOM-like access to the outline, have full access to their stdlib, have access to built in services like notifications, etc.

Imagine being able to programmatically access and manipulate the outline from wherever: webhook to add an outline node from IFTTT, twilio access your notes? etc. Yes you _could_ do that with Emacs, but IMHO it would take an incredible amount of work to not suck, partly because all the various pieces necessary feel like hacks on top of hacks.

Sort of how Atom and VSCode provide _much_ better interfaces (both code and UI) to your source code, and are starting to make honest inroads against the established players (like Emacs and Vim).


I've been wondering about this, as well, and so have been working on an Emacs configuration that makes Emacs work as close as possible to a "normal" text editor (hopefully allowing learning org-mode without the barrier to entry of Emacs itself):

https://github.com/publicus/emacs-org-mode-for-the-laity


It's way easier for someone to hack up an acceptable new UI for org-mode (whatever that looks like) using the existing underlying Emacs org-mode code/runtime than it is to hack up a new UI and completely replace all the Emacs code & org-mode.

You can run Emacs headless, it has C extension support now, your Mac app could start it headless and communicate with it over a socket or as a network process. Multiple Emacs modes do this to make Emacs itself talk to other programs (e.g. mu4e <-> mu, gud <-> gdb), there's no reason you can't do it the other way around.


It strikes me that if you want "org-mode lite", you would use Workflowy. This isn't meant as a criticism of Workflowy at all, they do a great job making a lot of the org-mode ideas accessible. But if I'm using org-mode, it's because I want the extensibility of emacs.


But isn't org's ecosystem one of its strongest assets? For example, things like Babel for executing code blocks or integration with RefTeX.


The only thing I can't stand is that you can schedule things and deadlines but no alarms or notifications go off.


You need to set up a hook for the notification you prefer: https://emacs.stackexchange.com/questions/3844/good-methods-...

Tons of options: shell scripts, dbus.el (since 23)/notifications.el (since 24), write(1)/wall(1) for terminals, etc


You can generate iCal files and import them in a calendar application.


Yeah, I'd prefer that something like this hooked into existing system functionality as much as possible.


Have it execute a shell script that sets a cron job?


Now that's it's open source, it should be easy to fix it.


Thanks for this! I've been using orgmode on my computer but used Google keep instead because lack of Android capabilities.

I still use orgmode for tracking my time by clocking tasks. Unfortunately this Android app doesn't seem to provide this option.


Too bad orgzly hasn't solved synchronizing. Notepad for Google Drive is a text editor with no features except it gets sync right and has become my favorite way.

Print out your todo list and carry a pen also works well.


I sync my org files to gitlab. Is there a way to sync org files via git with orgzly?


There's also MobileOrg on iOS, but can only read from WebDAV or Dropbox.


Does it support syncing over git yet? It didn't last I checked.


There is another project that does -

https://play.google.com/store/apps/details?id=com.coste.sync...

syncorg on github


I've been trying for a while to understand what org-mode gives you. I saw Dominik's tech talk at Google, and Bieber's discussion on dropping vim with emacs. I really like the approach taken in this article, showing some of the language features.

IIUC, what org-mode provides you is:

1. a (markdown-like) lightweight document markup language, with lots of syntax hooks ("#+") for different tools.

2. some (even lighter, i.e., no "#+" required) organization-based syntax hooks. These are the TODO/DONE/... labels (plus the "[ ]" tidbits), the table syntax, the metadata (e.g. AUTHOR). In fact, the idea of adding metadata to a lightweight markup language is very interesting.

3. some "programmy" syntax items, including things like tags, spreadsheet-like tables, properties, etc.

4. the agenda view. This is a horizontal search on multiple .org files to create a work agenda.

5. some emacs functionality related to automatic recognition and operation on some of the syntax items. For example, org-table-align will "Re-align the table and don't move to another field".

There are lots of other features, but nothing that other lightweight markup languages don't/can't have too.

My main concerns are:

1. it is inextricably tied to emacs. AFAICT, only (5) in the previous list is emacs-only. All the other functionalities are related to the markup syntax.

2. I wish the org-mode language was fully markdown compatible (I can barely remember the syntax of one, and now I need to use 2).


You are very right that other lightweight markup languages could provide syntax for everything that org-mode does. But what would possibly interpret that syntax?

The fact that org-mode is tied to Emacs is both its weakness but also its strength. By sitting on the Emacs interpreter, org-mode imposes no limits to what you can achieve. The synergy with other Emacs packages is enormous.

You also forgot to mention one of the coolest features of Org: exporting your documents to whatever format you may want, e.g. html, latex, markdown, odt, reveal.js, - and it's possible to hack the export to fit your needs usually with modest effort. Here's an example of workflow to collaborate with Word users, for example: https://lists.gnu.org/archive/html/emacs-orgmode/2015-06/msg...

And here a recent blog post on exporting org to jupyter notebooks: http://kitchingroup.cheme.cmu.edu/blog/2017/01/21/Exporting-...


I can see some of the benefits of the integration: emacs can do the horizontal search for TODO entries, create an agenda, let you edit it, and move the changes to the right .org file. Still, I'd argue that the file is the important thing here, not the tool to manage it. I should be able to edit .org files with any other tool (e.g. an android app that eventually modifies a .org file in github), and then do re-process the file.

Other languages also allow exporting to other formats. I use md-to-pdf all the time, and it works well. Integrating the use of other tools in the export process should be independent of the usage of emacs.


There is lots of functionality you can't do without some kind of non-ordinary editor functionality. The table functionality comes to mind, as does the time management functionality. But, really org-mode's syntax is simple and close enough to MD that it's very easy to implement in other editors. There is a vim package and even an Intellij package. But I challenge you to start implementing the non-syntax parts in another editor and you will quickly see that there is a lot of it.


> I should be able to edit .org files [...] and then re-process the file.

You can. It's a plain text file; Emacs provides a "live" and highly interactive UI for it, but nothing prevents you editing elsewhere and invoking Emacs, in "batch" (i.e. UI-less pure language interpreter) mode if you like, to evaluate, export, or perform whatever other actions on the file. I do this all the time, albeit in an interactive Emacs, with Editorial on my phone and files synced in Dropbox.

There are also libraries in languages other than elisp which provide some export functionality; notably, Github uses org-ruby, I think it's called, to HTMLify org files for web UI rendering.


Well, you can edit it in any text editor. You just don't get the automatic formatting, coloring, table calculations and so on that all depend on elisp.


> The synergy with other Emacs packages is enormous.

I've been experimenting toward a modern SQL interaction mode, and an Org buffer makes a brilliant place for output - native handling of tabular data, syntax-highlighted code blocks each with the query that produced a given result, headlines, plenty of place for user-added annotations, built-in export, overall a ton of work that I don't have to do.


I think a fruitful way of looking at what org mode gives you as... a way to pull together many organizational aspects of your life into one system, as opposed to having 5 different apps that have boundaries between them.

Doing an outline for that presentation next week, but need to put it down now, and don't want to forget about it? Schedule a reminder or due date right there in the document and it'll show up in your agenda. No switching over to a reminder app. Want to log time spent on it? Do it right there. In the middle of all that and get a phone call with a new task? You're a hotkey away from recording that info without leaving what you're working on.

For me it's the integration of all things organizational that makes it compelling.


The biggest thing, to me, is Babel: it's a system that lets you combine documentation and code into a single unit, and lets you combine code from many different languages into a single tool for processing. Now, instead of an unintelligible readme with an undocumented handful of scripts, I've actually got real documentation and an entire project basically in a single file.

http://www.jstatsoft.org/v46/i03

I've been thinking of starting a project specifically in org-mode for quite a while.


As a complement on how to use Org mode for ops:

- http://www.howardism.org/Technical/Emacs/literate-devops.htm... (Literate DevOps)

- https://vincent.bernat.im/en/blog/2017-netops-org-mode ("same" for NetOps, I am the author of this one)


Howard's YouTube video is really nice too: https://www.youtube.com/watch?v=dljNabciEGg


After watching this video, I spent a few hours reproducing the core functionality of what Howard demonstrated (with an .org file of my own)...

...and then went further down the rabbit hole. I installed org-reveal and used it to create a very nice presentation out of my .org file - with syntax-highlighted code seemlessly merging with screenshots.

Incredible. Thanks for pointing me to this - and thank you, Howard!


Pleasure. org-mode really is the gift that keeps on giving.


Server is currently overloaded.

Google cache version:

http://webcache.googleusercontent.com/search?q=cache:HsxJcXa...


Every time I see something about org-mode posted, I get mad FOMO and decide to re-dedicate my life to learning emacs and everything it has to offer. Then a little while later I inevitably drift back to vim.

It's getting to the point where I need to just ignore cool stuff like this post in order to get on with my life.


Try http://spacemacs.org with Evil mode - vi keybindings, all the power of emacs, and emacs pre-configured to work well out of the box.


spacemacs is all of the power of vim and emacs with all of the complexity of vim and emacs. Having said that, it's what I'm using for writing code now.


I was using spacemacs, but I didn't know emacs and lisp well enough to solve problems when I had them, and getting help was hard.

Now I'm back to using plain old emacs, and I'm hoping I can learn from spacemacs to make emacs better by contributing back to it.


You can get help in the spacemacs gitter chat... there is usually someone around that can help you out for most things.

https://gitter.im/syl20bnr/spacemacs


In my experience, it was kind of hard to get someone to reply back to me when I had a problem.


I can be for some advanced things. it's still emacs under the hood though so emacs resources are valid sources of information. That said, it's not busy during the weekend usually and is more active during US business hours.


Plus it's slow and riddled with bugs and good luck getting a PR accepted. I love it.


I split the difference with Emacs and Evil Mode. It's not at all the same as using Vim, but at least I get org mode and Vim-like modal editing.


I'm also using Emacs and Evil mode as well. It really is very close to vanilla Vim. There are probably only 3 major issues I have. First is that there is no emacs way that I know of to duplicate the work flow for opening files in vanilla Vim. I personally hate control-P. Managing buffers is also a bit different because the paths are not searchable in the buffer names. I'm using ido to help with this, but it has some quirks that I don't really like so well. My biggest problem is the difference in the way the undo buffer works. There are a couple of scenarios where a single undo will back up before the last press of escape. I think there are some bugs for these issues so I'm hopeful that they will be fixed (or have been fixed already -- I haven't updated in a while).

It took me quite a while to set things up, but I use it every day as my main editor and I'm quite happy with it. I can also easily jump back into Vim if I'm pairing with a Vim person, which was one of the things I was concerned about.


Me too. I had a spate where I went over to using emacs (built my own setup around spacemacs). It was very powerful, and I found stuff like helm, projectile very nice (org-mode with export to reveal.js was sexy as hell). But then I just dropped it all and went back to vim again.

For me it seems to be down to the following. When I am working with vim, I feel like I am in the same eco-system as my shell, there is a really nice continuity, whereas emacs feels like a separate entity (almost like I have an separate instance of a word processor open). I am aware emacs can be run in the shell without its GUI, but it still felt like it was separately sitting its own world.

For org stuff, I now use taskwarrior [1], which embeds into vim using taskwiki [2] and vimwiki [3] (which provides markdown export)

[1] https://taskwarrior.org/

[2] https://github.com/tbabej/taskwiki

[3] https://github.com/vimwiki/vimwiki


Five years ago I have started to use Emacs after I saw some cool org-mode demos in hopes of utilizing some of its power in my organization and task management. I've been using Emacs daily for every programming task since then, but diving into org-mode is still on my to do list...


You could use org-mode to manage that todo-list. ;-)

SCNR


alias vi=emacs

I added this to my bash profile when I got serious about learning emacs. I was not a vi power user by any stretch, but it had been my default for years. I much prefer emacs now.


I have been a heavy user of Emacs for six years or so.

However, I never really got into org-mode. I use it for some simple notes and lists, but I never export them into any different format. If I want to produce a well-formatted PDF, I directly write LaTeX with the help of some very nice Emacs modes. For online documents I feel that some sort of Markdown is often the most practical choice. So far, in my experience there was little overlap in between these use cases for the same documents.

This cookbook, however, is a very nice resource. Maybe one of these tricks will convince me to use org-mode more productively at some point.

I thought org-mode would be useful for personal task management, but I find it to offer way to many intricate options for that. The restricted feature set of Wunderlist is actually better for me, and having all lists always fully available on any device and the web is extremely useful.


> If I want to produce a well-formatted PDF, I directly write LaTeX with the help of some very nice Emacs modes.

My experience is quite the opposite. I was a heavy LaTeX user, and stopped pure LaTeX years ago when I learned org mode. For the usual markup, Org mode syntax is much nicer than LaTeX's. And if I want custom LaTeX, Org mode lets me insert it in the document.

I never manually write TeX or HTML documents any more. I always author in Org mode and export.

>I thought org-mode would be useful for personal task management, but I find it to offer way to many intricate options for that. The restricted feature set of Wunderlist is actually better for me, and having all lists always fully available on any device and the web is extremely useful.

The task management is as simple or as intricate as you like. Org mode doesn't force any intricacies on you. If you want a simple flow, you can get it without learning too much Org Mode.

However, having it available on any device is a big deal. I'll grant you that.


> My experience is quite the opposite. I was a heavy LaTeX user, and stopped pure LaTeX years ago when I learned org mode. For the usual markup, Org mode syntax is much nicer than LaTeX's. And if I want custom LaTeX, Org mode lets me insert it in the document.

That's interesting! I googled a bit and found that people actually write research papers in org-mode.

But in my experience (physics) that usually requires a lot of manual LaTeX control. Also these documents are often written in collaboration with other people, who do not use org-mode.

Frankly, Auctex with Reftex is so nice, I do not see the advantages of org-mode for my main use cases.

Maybe I will give it another try one day for letters and other one-off documents. I could see an advantage in hiding all the LaTeX boilerplate cruft.

> The task management is as simple or as intricate as you like. Org mode doesn't force any intricacies on you. If you want a simple flow, you can get it without learning too much Org Mode.

This is one case where I find actual value in the choices and pleasant design somebody else has made for me. Of course, now that I have learnt how well Wunderlist works for me, I could try to re-implement it in org-mode. But what would I gain? Mainly nicer text editing capabilities, secondly independence from a cloud service. The text editing is not a big deal, since it is actually beneficial to keep these lists short. For now, the cloud service comes with so many advantages that I accept this dependence. Finally, I have come to the surprising realization that browsing and checking off these lists is actually nicer for me in a mouse-first, keyboard-second interface, at least as long as I get to use a keyboard with a trackpoint.


>But in my experience (physics) that usually requires a lot of manual LaTeX control. Also these documents are often written in collaboration with other people, who do not use org-mode.

You can pretty much embed any LaTeX code in your document. Org mode is usually smart enough to pick up command (\whatever) without any extra markup (I believe this works even for custom commands you defined yourself). Equations are surrounded by a single or double $. If you have other special stuff, you can explicitly put it in a block by itself and Org mode will pass it to the .tex file unmodified.

Yeah, coauthoring could be an issue.

>Frankly, Auctex with Reftex is so nice, I do not see the advantages of org-mode for my main use cases.

I'll confess that I was not an advanced Auctex user, so I can't compare. The author of org mode is a heavy latex user (astronomy professor), so I'm sure he made it good enough for his needs.

One thing I liked was the ability to insert Greek characters with minimal keystrokes (a for alpha, b for beta, etc). You can preview your equations just as you would with auctex.

This tutorial shows the capabilities in older versions of org mode. Not sure if there is an updated version:

http://orgmode.org/worg/org-tutorials/org-latex-export.html


Question I've found myself running into with org-mode. How do you use it to collaborate and share notes with others?

I work in a Windows shop (Microsoft data platform partner), and most of my coworkers don't even know what emacs is. I can always export my own notes to HTML or similar for others to consume, but most of my coworkers are using OneNote. I prefer org-mode to OneNote, but for convenience I use OneNote since we can collaborate better.

I didn't find anything that can ingest and spit out OneNote compatible notebooks when I looked.


Maybe take a look at Pandoc[1]? It converts between Org-mode and Microsoft formats.

[1] http://pandoc.org/


Maybe make an AskHN out of your question? Or ask on the Emacs Stackexchange - http://emacs.stackexchange.com/ - Link back here if you do


If anyone is having trouble getting the plantuml diagrams going, here is what worked form in OSX:

1) Didn't have Java, installed it by following the prompt that appears by running 'java' in the shell

2) brew install plantuml

3) M-x package-install<RET> plantuml-mode<RET>

4) Add following to .emacs

    (setq org-plantuml-jar-path "/usr/local/Cellar/plantuml/8057/libexec/plantuml.jar")
    
    (require 'ob-plantuml)
    ;; active Babel languages
    (org-babel-do-load-languages
    'org-babel-load-languages
    '((plantuml . t)
    ))


I write lectures for university in org-mode. The PDF export (org -> LaTeX -> PDF) with org-beamer and a theme makes it a nice looking presentation. I can check into Git, can copy and paste layouts, have a great search and don't have to leave the keyboard (which over time has actually become quite a big deal for me).

Just wished Preview would show thumbnails in the TouchBar.


For those uninterested in getting into a LaTeX presentation tool, there's also a package [1] supporting export from org-mode to Reveal.js presentations. I've found it to work quite well, and to be much more convenient than any more GUI-focused tool.

[1] https://github.com/yjwen/org-reveal


I have used that, too, works like a charm.


i used to use org-mode a lot back in the day, but I lost my emacs config, and since then haven't really gone back. I always have a fond memory of organizing my tech life with org-mode, though. It was truly ahead of its time, but I feel there's better tools for the job now, that specialize in doing each of the many things org-mode does, but better.

Some alternatives I used off and on for a bit: * NValt * Respose Notes * Evernote * Plain Tasks for Sublime Text https://github.com/aziz/PlainTasks * Workflowy * Other web-based/mobile optimized tools

It's still a great tool for managing a single dev's work life, especially if using emacs, but I've found more modern tools, with collaboration built in, pretty formatting for non-techies, etc. a little more flexible.

(I also dare to say that I'm on Microsoft OneNote these days, mostly because I work in a multi-platform environment.)


Just to play counterpoint to this, these features being available in various tools is precisely why I like org mode. Workflowy has always struck me as "org-lite", and plain tasks for sublime is also a good package, as is nvalt. But the combination of org-velocity or deft and org give me all that in an integrated tool. The only thing I don't get is the clipping ability of Evernote. Plus my data is my own, not locked into someone else's ecosystem.


Every time I try to get into org-mode, I just don't get where to start and how to do things. So I end up going back to Sublime text, creating markdown files to take my notes, works well.


I started with simple outlines. Then started using `TODO` and similar states to track tasks and projects, along with checklists. There's a ton that I never use, I'm honestly only using the following 95% of the time:

  * Headline 1 [1/2]
  ** TODO Headline 2 [2/4]                   :tag1:tag2:
    - [ ] Some incomplete task
    - [X] Some other task
    - [ ] [[http://example.com][Only this part shows]]
    - [X] C-c C-c will toggle the state
  ** DONE Headline 3
  ** Some code in this one                    :code:
    #+BEGIN_SRC elisp
      (defun some-function (foo)
         ...)
    #+END_SRC
But when I want more, it's there, and I can extend it. I toyed around with, but didn't complete, having rust code snippets exported to temp files that would be compiled with the output pushed back into the buffer, for example. Just stole the org-babel code for handling C and tweaked it. I made custom states for handling my org file which contains my ledger file (ledger-cli user) so it more clearly matches my workflow. Same with links to JIRA entries at work, and creating a task management workflow that matched the way my work hours get billed and tracked by management.

OTOH, if Sublime and markdown works for you, keep using it. Nothing beats a functioning tool, in the end.


> OTOH, if Sublime and markdown works for you, keep using it. Nothing beats a functioning tool, in the end.

I don't understand. You can just use a tool and not fiddle with it constantly? Tell me of this strange way of working.


You can extend ST with plugins.


Given the many different features this is not surprising. My approach was to focus on learning one set of features at a time. I used http://doc.norang.ca/org-mode.html as a guide. The order I went in was: Creating / editing / manipulating trees - Being able to easily organize everything in a hierarchy TODOs - how to customize my own list of TODO states to fit my workflow Habits - I created a habit for learning more about org-mode each day Agendas - I found this to be one of the most useful features especially being able to create a custom agenda to see exactly what I wanted - a section of scheduled todos/habits and list of TODO items organized by todo state, sorted by category Capture Mode - makes adding new todo items easy

I used org-mode to help me learn org-mode, using everything I learned prior to help bootstrap learning the next piece. At the same time I integrated the pomodoro technique into my work flow. So my habit item for learning org-mode was to spend one 25 minute period a day learning. Do this for a couple of weeks, making sure to spend some time customizing everything to suit your process and you should be all set.


Okay but it's too easy to fill a todo list with more than you can accomplish in one lifetime.

I need a guide that tells me how to rationally prioritize work, health and family above my never-ending .emacs.d side project.


Nonmalicious heads-up: you're missing a couple linebreaks.


I wouldn't start with this cookbook, which seems to be a laundry list of all the extremely hairy things you can do with Org. Think of it as an outliner with simple tables and spreadsheets: starting a line with "*"s makes it an outline heading, and "| something | like | this |" is a row in a table. That's how I've used it for years, despite being aware that it can do all sorts of other semi-related stuff. Don't venture down the rabbit hole of complexity unless you want to.


Exactly. Just use org-mode like you use your markdown files, and add additional features as you need them.

You don't need 90% of those massively complicated setups that you get when you Google "org mode tutorial".


I use markdown for blog posts and presentations, pandoc and/or hakyll (jekyll for haskell) suits me fine. What am I missing that org mode would provide?


I've found this series of videos on YouTube to be a very good introduction. The speaker starts with very basic concepts and builds on them in each successive video:

https://www.youtube.com/watch?v=sQS06Qjnkcc&list=PLVtKhBrRV_...


The beauty of orgmode is that you don't need to learn everything to start using it, actually, you can just start with your typical workflow and look for stuff as you need.


I stopped using org-mode for a time after having invested a lot of time in learning all the cool stuff you can do because I felt like it was overkill and I was trying to do too much with it and organizing everything was becoming a chore. If you look at all it can do, it has so many capabilities (outlining, gtd, wiki, blogging, ebook publishing, presentations, time tracking, etc).

Recently, I came back to it just to use for code/programming notes and instead of trying to organize all the code into source blocks I went the other way and added in my own comments and questions in blocks that can be toggled on/off around the code that's there. Now the only org syntax I really use from org-mode is `#+BEGIN:` blocks for comments/questions I can quiz myself on and occasionally headlines when I want to organize something because it's in the way of reading the plain text. If I gave advice to someone new to it it would be to start with just plaintext notes and only add what you really need. You can quickly go overboad once you are trying to figure out how to do footnotes, file linking, exporting w/ images, source code execution, etc.


Not sure if it is the same thing, but I find myself sometimes procrastinating by noodling with software features. It isn't the fault of org-mode (or any other software), it is mine, for not being disciplined enough.

"Distraction free" apps don't work, because I frequently need to switch windows a lot and need some fancy features.

Really, the answer for me is to work on staying focused. (Perhaps a lobotomy would help.) But it isn't a problem with my tools.


Yes I've done this a lot too. Emacs is the perfect environment for doing this too, but it really isn't too blame. I also have a problem wasting too much time on reddit and HN. If I put all this time I've been spending reading forum comments into instead reading really high quality content material (maybe books, wikipedia, or even good source code) I'd probably be a lot more skilled than I am. But, yeah the problem is me, and I agree looking to software (like discract-free apps) to solve the problem for me is counter-productive


Someone once said that the trick of being productive is to use emacs as "your operating system", or unproductive if you just end up playing with elisp all day.


Oh you want to quiz yourself occasionally? There's a minor mode for that: org-drill http://orgmode.org/worg/org-contrib/org-drill.html


The first time I decided to start using Org, I printed out the reference card with all the keyboard shortcuts...and quickly gave up. But I hadn't learned Emacs itself yet, so trying to learn to use Org without really knowing how to use Emacs didn't work.

Later, I learned Emacs itself, and then learning Org was much easier, because I could look up functions and keys and variables and customizations, etc. from within Emacs. As some other people said, I just learned a little bit at a time as I used Org. Eventually, after customizing it and even making a couple of Org-related packages, it's become my own system that works the way I want it to. And I will probably use it for the rest of my life. That's one of the beautiful things about Emacs and Org.


>Every time I try to get into org-mode, I just don't get where to start and how to do things.

Don't start with the manual. Emacs manuals are more like reference books.

Find some tutorials and go from there.

The learning curve is shallow - that I can promise.


Check out the Sublime Text plugin PlainNotes (and PlainTasks).


Org-mode is one of those things that I regret not learning about when I used Emacs full-time. I've had a few friends now show me how it's completely changed their workflow, but since it's not terribly popular in Vim-land (though I am aware there is a port to Vim), I haven't really had a chance to really learn it.


Check out http://spacemacs.org/. Adding the org layer is a one-liner: 'org' in dotspacemacs-configuration-layers.


I've actually used Spacemacs, but the problem with all these "recreate your Vim setup in another editor" things is that you end up having to redo your entire config. I've had years of custom key-rebindings and tweaks to my `.vimrc` that I don't really feel like redoing for something else.


I had a lot of modifications to my vimrc but spacemacs won me over. It's mostly setup well out of the box. If you feel like taking the plunge there is an Irc like thing for open source projects (don't recall the name of it now.) that is fairly active.



I switched to Emacs specifically because of all the Org mode love I'd read about. I've barely touched the surface of Org, thank you!


I tried to get into org mode and even ordered the printed manual, but it was just too much configuration work and shortcut memorizing, to be honest. Maybe another time. For now I've reverted to using an Action Day Planner[1] and Leuchtturm1917[2] notebooks with numbered pages for notes, and I'm fairly happy with this system.

In hindsight, given the many things I've tried, email + pencil&paper is still hard to beat.

[1] http://www.actionday.com [2] https://www.leuchtturm1917.us/


They're for different kinds of work, really. I use a Leuchtturm1917 with a nice fountain pen for deep thinking and analysis, and org-mode for running notes while doing work.

org-mode is very deep, and you shouldn't try to learn it all at once. Start off small in a way that you find it useful, then start adding in features as you need. There's no need to use all, or even many, of the features for most use cases.

But it's nice to have them when needed.


Shameless plug: http://github.com/alphapapa/helm-org-rifle Makes it very easy and fast to search through org files.


By looking at the GIF in helm-org-rifle I remembered reading about variable-pitch fonts on (what I believe to be) your blog. Great content in there, thanks a lot for sharing!


Don't actually have a blog, but I've been thinking about one for some Emacs-related stuff (though it would be feeble compared to the Emacs-related blogs already out there!). I assume you know about Planet Emacs, but if not, planet.emacsen.org. :)

Anyway, about the fonts: I use monospace fonts for code, but I like proportional fonts for Org documents, so I have this in my org-mode hook:

    (buffer-face-set :family (face-attribute 'variable-pitch :family))
Then I use monospace in Org code blocks like this:

    (set-face-font 'org-block-background frame-font)
You could also set that one in the customize interface.


For years I've wished to see an implementation of the basic feature set of Org and Remember, et al., as a javascript/node app that could be re-packaged as an outlook plugin, browser extension, or electron app, etc., ...for those of us non-pro-programmer/hobbyist types who really want to use emacs and org to do mere mortal stuff but don't need to live in a code editor/IDE like the pros.


Org-mode is on my list of things I should probably learn better, but never seem to get around to. Here are some entries in that list:

  Emacs
  Regex
  Latex
  Bash/Terminal/Powershell
  Unicode
  APL/J/K
  Linear Algebra
  Category Theory


  * LearningList
  ** TODO Emacs
  ** TODO Regex
  ** TODO Latex
  ** TODO Bash/Terminal/Powershell
  ** TODO Unicode
  ** TODO APL/J/K
  ** TODO Linear Algebra
  ** TODO Category Theory
EDIT: Format


Start using the tools.

For LaTeX: I very strongly recommend picking up a copy of the Lion Book (Leslie Lamport) and running through the examples. I actually picked up a great deal by taking documents I'd found online in bastardised for and tagging them up manually in LaTeX for output into flexible formats -- HTML, PDF, ePub, and more. It turns out that the basics of LaTeX are, well, pretty basics. Paragraphs are double returns, which buys you a lot. Italic and bold text, and the ``quoting'' style, are the main adaptations I had to make.

Digging into the equations and images features takes some doing, but you can produce excellent docs well before that point.

Stack Exchange has a wonderful LaTeX community.

Of the rest of your list:

1. Emacs: I actually got pretty good at it at one point, then signed on to a gig (in the days just before running one's own Unix was readily possible) in which it wasn't available and the boss (idiot) didn't believe in installing anything which wasn't vendor-provisioned. That said: commit to using it. I've found that I prefer vim's editing modes, but there's viper-mode in emacs. The power of having all text interactions under your editor is ... immense.

2. Regex: Start with the basics. The Sed & Awk book (O'Reilly) is a good start. Most of it is simple substiutions, and you can get tremendous mileage from that, though as with many tools, you can abuse the concept. Perl remains probably the canonical home for advanced regex use, though most languages have some facility for it now.

3. Bash: I'd recommend this, if only because Microsoft has a poor track record of integrating with others and/or supporting other tools over a long period of time. Bash has existed on Windows since the 1990s under various toolkits, most notably Cygwin, and is now pretty much native.

4. Unicode: mostly a matter of figuring out what bits you need within a given project. I'd deprecate that on your list and consider it something to pursue on an as-needed basis.

I can't much speak to the remainder of your list, though I'd suggest treating them as tools adapted to uses and goals.


As far as regexes, The Sed and Awk book is good, but Mastering Regular Expressions by Friedl is amazing. The amount of time that went into that work is mind-boggling. The deep dives into the differences between different engines and the detailed explanations of why one regex performs horribly vs. another that matches the same thing quickly are really enlightening.


I agree with both statements. I still think that Sed & Awk is the better starting reference, as it begins with basic tools.

Deep dives are fine, but sometimes you just wanto to get a few toes in the water.

I'd argue that if you've got performance issues with regexes, you're (arguably) abusing the tool.



This gave me an idea on how to organize interesting stuffs and it's quite simple. Thanks! I hope nickpeterson did got that idea too. And what I could recommend is to use emacs and org-mode everyday especially when taking notes. You can't learn without using them. It gave me lots of benefits.


Regarding regexes, I would recommend http://www.regular-expressions.info/tutorial.html

It doesn't take long, and I found the explanation clear enough that it's stuck. It's also a good reference site if you want to quickly remind yourself what X means in Y dialect.

I also have a long todo list that more things go on than get done. But, I think it's probably unreasonable to expect to learn more than say one or two programming-language level things a year if you've got a job. Certainly if you're going to do the learning thoroughly and not just forget it all by the next year.


I've found that 3Blue1Brown's video series is a good introduction to linear algebra:

https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...


Well, org-mode is a pretty decent replacement for LaTeX. You can do most of the basic formatting, plus it supports specialty LaTeX syntax when org-mode is not sufficient.


bandwidth exceeded message

http://webcache.googleusercontent.com/search?q=cache:HsxJcXa...

I have gotten into org-mode a few months ago, simply amazing.

Edit: I see why I have been downvoted, but here is the error message I received.

451 Actioning this file would cause "ehneilsen.net//notebook/orgExamples/org-examples.html" to exceed the per-hour file actions limit of 20000 actions, try again later


Any suggestions for composing gantt charts in org mode? I've been using taskjuggler but printing them out to anything other than html (ex. image, pdf) has been a hassle.


I'm surprised that no one tried to replicate this in electron yet. Outlining alone is really powerfull and would be a great fit for a web based app !


Why use electron? emacs is already available. And it includes a pretty great news reader, mail reader, git interface, source-control interface, a thousand other nifty things — oh, yeah, and a text editor too.


Even if they should, not everyone needs to, or is inclined to learn and live in emacs. Thinking especially of technically inclined folks (or managers, etc) who don't really write code or have any reason to live in an editor, but get benefit from all the loads of other nifty things - just without the cognitive overhead of stuff like tweaking config files, learning all the keybindings, managing buffers and the like- again, just for the use of org as a powerful, text-based, personal information manager.


Why do people think that Emacs is impossible for non-programmers to use?

"He wrote a version of Emacs in Multics MacLisp, and he wrote his commands in MacLisp in a straightforward fashion. The editor itself was written entirely in Lisp. Multics Emacs proved to be a great success — programming new editing commands was so convenient that even the secretaries in his office started learning how to use it. They used a manual someone had written which showed how to extend Emacs, but didn't say it was a programming. So the secretaries, who believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program."

https://www.gnu.org/gnu/rms-lisp.en.html

"I'm a non-technical user, non-programmer, and I started using it because of org-mode."

https://groups.google.com/d/msg/gnu.emacs.help/QU6xN34ollo/K...

"Shel wrote Mailman in Lisp. Emacs-Lisp… Mailman was the Customer Service customer-email processing application for … four, five years? A long time, anyway. It was written in Emacs. Everyone loved it.

People still love it. To this very day, I still have to listen to long stories from our non-technical folks about how much they miss Mailman. I'm not shitting you. Last Christmas I was at an Amazon party, some party I have no idea how I got invited to, filled with business people, all of them much prettier and more charming than me and the folks I work with here in the Furnace, the Boiler Room of Amazon. Four young women found out I was in Customer Service, cornered me, and talked for fifteen minutes about how much they missed Mailman and Emacs, and how Arizona (the JSP replacement we'd spent years developing) still just wasn't doing it for them."

http://tess.oconnor.cx/2006/03/quality-without-a-name


I didn't say it was impossible, just maybe not entirely practical (due to time or inclination, etc)


For folks that easily get scared by elisp it would be awesome if there was a possibility to use org-mode from Atom or VS Code. That way someone who is a beginner with not a lot free time can try it out with the "support wheels" of a familiar environment.


For all those who are coming from Vim and experience FOMO... I learned Emacs, it is fantastic editor. Org mode, it is nice, I tried to use it several times, it is a little bit overengineered, but very smart. I wasn't as awestruck with it.

I find whole Emacs ecosystem slow. After I type, things are slowly happening one, by one. Org Mode, especially coming from Vim is not that impressive, I do respect history of it.


My big question with org mode is how to really handle todos. Should I always capture tasks into one big file? When I finish them, do I just leave them for this file to grow forever with more tasks being done and having to hunt for the todos in the file unless I use agenda view?


You can always put different tasks to different files (per project for example).

There no need to hunt for todos; use `C-c \` (or `C-c /` for more options) to create a sparse tree. It supports the same queries as agenda tag searches. For example, `/!` to show all unfinished tasks, or `/TODO` for just the ones with TODO as the keyword.

You can also use the timeline view with a prefix argument to see tasks in the current file (`C-u C-c a L`). Or you can restrict other agenda views to the current buffer (`C-c a < t` for a task list). Custom agenda commands can also specify their own set of agenda files (they can also be chosen by a function whenever the agenda view is created).


You can move no-longer-useful data into an archive file: http://orgmode.org/manual/Archiving.html


Wow, I didn't know org mode did sequence diagrams. That is going to be really useful to document our code.

Will be great to be able to check in the source for sequence diagrams since the online services I've found for making them are hard to work with as a team.


Think of Org-mode as more of a multi-language ipython notebook, where anything (plantuml, ditaa, python, etc) can be used, along with a data interchange format (org-mode vars + tables).

It can literally "do" any tool you use that has a cli interface.


It amazes me how powerful org-mode is. I saw that Hugo has started supporting org-mode, together with Caddy server and couple of extensions one could create awesome web based knowledge-base, all with a minimal stack.


Bandwidth Restricted The page you have tried to access is not available because the owner of the file you are trying to access has exceeded our short term bandwidth limits. Please try again shortly.


Looks great but I personally prefer to take notes with jupyter notebook.

For TODO lists I prefer Asana, since it will send you e-mails/push notifications, and has a website + mobile app.



There is also https://github.com/gregsexton/ob-ipython which integrates a Jupyter kernel into org-mode's #+BEGIN_SRC/#+END_SRC blocks. It can display the results of the execution of such blocks much like Jupyter Notebook.


And to make it even better, export an org document to a notebook: http://kitchingroup.cheme.cmu.edu/blog/2017/01/21/Exporting-...


Open source: interoperability is magic


Ditto on Asana.

My wife and I use Asana to manage our lives... albeit she does most of the tasks (I really need to improve on that. She is so darn productive).


Would that be this? https://jupyter.org/

(Your comment could be substantially improved by pointing to the source, and perhaps explaining why the tool is preferable, in your view.)


It is a very well known project, I didn't feel the need to introduce it.

You can see some demos here:

https://github.com/jupyter/jupyter/wiki/A-gallery-of-interes...

It's free/open source and can embed lots of different technologies:

https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

I think Jupyter is very powerful, the learning curve is lower, and you can share your documents in an easy way if you need to.


I can't really compare the learning curves of Jupyter 7 org-mode, but I think org-mode's learning curve can be very easy (a lot of people make the mistake of trying to do everything all at once, rather than just using the things they need as they need them — I've been guilty of this in the past), and since org-mode just operates on simple text files it's extraordinarily easy to share documents.


Thank you.

To others: Downvoting this comment is manifestly unfair. Please don't do that.


It is very well known as IPython which is now on referring to the kernel of (Interactive Python). Project Jupyter is the name for the Notebook and it has access to many different kernels and is language agnostic now.

Your comment is condescending and not very informative.


> Your comment is condescending.

No, it's really not. Please assume good faith.


Its official name has been Jupyter for a while now (3 years), since IPython was decoupled from the notebook.

Please do not use ad-hominem.


Can jupyter do tables and diagrams followed by code snippets in multiple languages?


Yes. You can use cell magic to change the language for each cell and you can display HTML/latex output inline or just mix computations in with markdown. The only problem is that the editor is just a text box with annoying bracket matching instead of Emacs.


Have yet to try it myself, but allegedly you can run a Jupiter notebook inside emacs:

https://github.com/millejoh/emacs-ipython-notebook

Seems the best of both worlds!

Now, is there a elisp notebook (or is it just emacs)?.


I really want to like Jupyter. But taking notes or working through things in a textbox element just doesn't cut it.

If I could build my notebooks in emacs...

But then org mode has most of the same functionality.


Oh, but you can! Check out ein-mode: https://tkf.github.io/emacs-ipython-notebook/


My biggest Jupyter complaint is that, at least by default, produces files that are pretty hard to revision meaningfully in git.


The jupyter team are aware of, but not currently fixing, this issue. I use the excellently simple nbstripout as git hook and it silently removes everything but code.



A lot of the things in the article are supported.

You can format text and tables via Markdown, add MathJax equations, etc.

Then you can write down code, evaluate it, and it can evaluate to images as well... charts and such.

You can optionally export the resulting document to HTML and share it in static form, or just share a link to the notebook. In addition, github supports Jupyter notebooks.


Both serve a similar purpose, but are not exactly equivalent. I use Org to take notes and write prose. I guess Jupiter could be extended enough to support many features that Org provides...

I guess it boils down to having a hierarchical vs sequential document as the base form, really.


Both are for taking notes (therefore the name Jupyter notebook).

Jupyter may already be more featured than org-mode through the kernels it embeds. e.g: SageMath alone is gigantic.

Then, if you don't enjoy the web interface you can use it within emacs if so you prefer.

https://github.com/millejoh/emacs-ipython-notebook


exceeded bandwidth limit. how much traffic you think getting on hn's frontpage might bring in?


oh, bandwidth restricted


A bit unrelated but in the last update of org-mode when trying to use the listings latex package it starts inserting a \ before the { in \lstset {, is there any way to fix this?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: