I use org-mode almost every day, and I think it's great, but I also think it's fair to point out what I see as its biggest disadvantage. It changes. And by that I mean the developers don't care at all about breakage. This has caused countless problems for me over the years in two ways:
i. You better be using exactly the same org-mode version on all of your computers, because there is no concept of backward compatibility. Making matters worse, there is no restriction that changes have to be documented before the release. I got burned with some presentations when they made major changes to the exporters. The documentation consisted of a statement that they were working on the documentation.
ii. The documentation you find may or may not work. Google is hit or miss because in most cases your search will return an answer for a different version from the one you're using.
This is not to say you shouldn't use org-mode. As I stated at the top of my comment, I use it on a daily basis, so there are a lot of benefits. Nonetheless, org-mode discussions paint a rosy picture, when there are in reality issues that you have to be prepared for.
I use org-mode everyday, as well. And the org-babel literate programming environment is a game changer, and something I find new uses for all the time. Check out this literate devops video [1]
But I share your sentiment for the stability issues which I think reflect problems with emacs in general. One day, you update your packages and suddenly your favorite mode does not work anymore and you have to spend 1/2 day figuring out why literally digging into the source with edebug. Because of this I take the following measures. I use melpa-stable which as the name indicates are the stable versions of emacs packages. (The problem is not all packages are in melpa-stable so you have to deal with that too.) Also, I manage my own version of org-mode cloned from the canonical org-mode repo that I update when I decide and I can back out of if there are problems. Finally, I run emacs within docker which allows me to freeze dry and rehydrate environments that are completely under my control so that I don’t encounter problems with a changing environment either. Here is my literate org-babel .emacs, if interested [2] (I don’t have the Dockerfile on github, yet, unfortunately.)
I love org-mode but yes, some of its developers do not care at all about users. I'm really afraid of updating org-mode because every time I do a lot of things break. Since I use org for my work, this can have very unpleasant consequences.
Another problem is that org-mode diverges more and more from central priciples that made Emacs so successful. Emacs is primarily a text editor, but org is adopting more and more principles of graphical UIs. For example, when I press enter on a tag attached to a heading, I would expects that this inserts a newline character at the position of the cursor, but no, the org developers think that I don't really want a new line when I press enter at this position, and instead the cursor just moves to the next line. WTF!
Yet another problem is the way in which design decision are made. There is rarely agreement about new features on the mailing list, and instead of finding a common ground, the adopted solution is all to often to make the feature in question configurable. This leads to an explosion of configuration options and it's easy to imaging how this can ruin a code base. Testing becomes a nightmare and documentation, too.
Thanks for your comment. I started using org-mode only this year and so far didn't have to change the version yet - so your comment is a good warning to avoid investigations into functionality that relies on exporters.
I am using org-mode daily, mostly for work notes and logging working time - allows me to quickly generate time reports to the customers. However I didn't yet go into other functionality like presentations.
This is true, and it's happened to me too. The first time it did, I pinned my version to a working stable one, and thought maybe I should write some unit tests for org. That was years ago, and I've been too busy ever since, but there's always the possibility to contribute (or fork . . . ).
So far, I haven't encountered any undocumented or severe breakage when staying with the stable version. Of course, things are different if you pull from Git master, but that's to be expected...
I'm using the stable version. However, if I install on a new computer, I don't want to go with a year old version just to maintain compatibility with my other installs. And if I collaborate with someone else, it's unlikely they'll have the same version.
I wouldn't mind adjusting my work flow based upon the latest version and discover some benefits. But it would hurt me when my customization is affected after an update which the developers are not aware of. As much as possible, I stick on the defaults or building on top of it. If you can't find a documentation by searching from google, you might find it by searching on org-mode's mailing list.
Here[0] is a demonstration of a good set-up in org-mode. This was written in org-mode and generated the html file. You can tangle the source code[1] and try it. This had greatly helped me to get started in organizing everything.
One of the feature I like is time clocking[2] where in you time all everything that you do (including sleep![3]) and eventually review after a week/month/year, you can generate some analysis on what task took most of your time.
org-drill[4] helped me a lot when there are things that I need to memorize.
I used vim for one year before moving to emacs. Indeed, I can edit files faster in vim rather than emacs but I can get more stuffs than in emacs rather than vim because of org-mode. Therefore, I choose emacs for the reason that org-mode helps me organize everything.
> Doesn't have to be that complicated, though. I recommend starting with a simple workflow.
Definitely agree. I tried to force myself into using tags and agenda when I first started and it didn't end well. Instead you should start out using it as a simple TODO list manager and slowly use more advanced features when you figure out how they could fit in with your workflow. I think Carsten Dominik (the original author of Org-mode) put it best:
>What people miss when they are new to Org-mode is this:
>Don't try to set up the "final" task managing system from the
start. Because you have no idea yet what your system should look
like. Don't set up many TODO states and logging initially,
before you actually have a feeling for what you working flow is.
Don't define a context tag "@computer" just because David Allen
has one, even though you are sitting at a computer all the time
anyway! Start by creating and managing a small TODO list and
then develop your own system as the needs arises. I wrote
Org-mode to enable this development process.
I entirely approve of starting small, including avoiding tags and many different TODO keywords, but I think avoiding the Agenda is a bad idea. If your files start out simply, the Agenda will be easy to use. And once you learn its commands, and how to manipulate Org files through the Agenda (instead of editing the file itself), you will have gained a power that will continue to pay dividends later, as you get better at Org.
To me, learning to use the Agenda early on is as important as learning to use Emacs' basic movement commands early on: it will make everything after that much easier.
Org-Mode has been the most rewarding part of using Emacs for me and has been what kept me from switching to another editor for more than two years now. I have a single Org-Mode file[1] that builds my entire development environment.
> Org-Mode has been the most rewarding part of using Emacs for me and has been what kept me from switching to another editor for more than two years now.
Same. Every now and then I think "ooh, Acme might be really cool" but then I remember it doesn't have Org-mode. It really is the killer-app of Emacs. I guess it's a good thing because it means I can finally settle on an editor long enough to master it.
I regularly use org-mode, for all types of notes, including for work notes. One of the many advantages with org-mode is "time-stamping", and to have a reference to a particular item in your agenda (org-agenda).
As e19293001 noted, time-clocking is also very nice, and the possibility to generate reports based on time spent on each item.
Another very useful feature is the usage of internal or external links: links to local files, or to a external source such as a web links (e.g. through http, ftp, mailto, etc).
Genuine question: how does Org-Mode handle mindmap style information management? By "mindmap" I mean applications such as Freemind, Xmind, etc.?
I recently started to use Xmind after years of Vimoutliner. Both the upsides and downsides are huge for me. For text based approach such as Vim, it is great in fast input, text manipulations, complex searches, integrate with other tools, portability, etc.
But on the other hand in Xmind(or other mindmap applications), being able to see the nodes spreading out on the screen(with colors, icons and whatnot) , drag them around freely into various structures(trees, flow charts, fishbone diagrams, etc.) is really helpful to thinking and manipulation. Also you can attach a host of files(images, videos and stuff like that) to those nodes. I am torn between these two types of approaches, each with their respective advantages.
A couple things. Simple outlining, to me, gets a big part of the mindmapping benefit, at least if you're often collapsing and expanding documents so you get big picture and drill down to smaller. Of course, outlining has basically a single heirarchy and doesn't do what mindmapping does with showing relationships between disparate headings. In Org-mode the "Agenda" is where you would generate, view, and process these kinds of relationships, by doing searches, potentially over hundreds of different files.
The Agenda is one of the two or three major parts of Org-mode (also one part where many/most users barely scratch surface of what it can do). It's definitely a different model of associating connections from what you get in the usual mindmap application. But, I would argue, not less powerful. In fact, I think using the Agenda to find relationships is probably more powerful than mindmapping, but it requires perhaps a bit more effort since the connections aren't directly visible, need to do searches and have items gathered together in Agenda buffer to "see" them. All of this probably makes little sense until you've fully grokked how Org-mode can work (but which probably the majority of Org users never do). Org is one of the most full-featured applications I can think of, both in breadth and depth of features, far more than any mind map application. There is a fairly big learning curve to access all the power, though. (And part of learning curve is not just in learning features, but in learning how to organize your data so you can use features to access, process, and view it in the most helpful ways).
Also, Emacs (and thus Org) do a good job of handling colors, fonts, diagrams, images (can be displayed in Emacs buffer and hidden when node collapses), web and file links (can immediately open in Emacs buffer and/or separate app), there are extensions that allow you to quickly/automatically insert external links into org documents, etc.
There's another (Mac-only) bit of software called Tinderbox. I'm a die-hard Org user -- use it every day, and have written quite a bit of software on top of it. Tinderbox is the only program that occasionally makes me regret committing to Emacs/Org.
There's a (Mac only) notetaking program called Curio with many features, one of which is the ability to convert an outline (which it calls a 'list') to a mind-map or vice-versa: http://www.zengobi.com/products/curio/
Truly, the difficulty of getting your Agenda on the phone is one of the great frustrations of Org. I have an Android phone, and while it's useful for some things (making phone calls, wechat), its utility would easily be doubled by having my Org information on the phone.
I think the problem arises because most Org hackers are Emacs hackers, but writing apps is a totally different domain. I went at it once, full of beans, and was defeated by Java, and the general app ecosystem.
Each uptick in my emacs lisp ability has had an immediate effect across my entire computing environment, and that has made learning lisp a practical endeavor, despite my not really being a programmer. Learning to write Android apps... I'm going to need that once, perhaps twice, and it's not worth it.
I used to use https://github.com/dengste/org-caldav to export my agenda to owncloud, which at least gave me a low-effort read-only calendar of my agenda, but with recent versions of orgmode they changed the whole export engine which made my configuration not work (and I haven't had the energy to try again).
Yes, if you jailbreak your iPhone, install openssh, SSH to localhost and start your specially compiled emacs for arm binary. A bluetooth keyboard is recommended. If it's just about viewing you could export to html, or export to a file that another Outliner app can easily import.
The same method of operation (native emacs) on Android is much more convenient, by using a Linux chroot (Linux Deploy). Android users also have it much more easy in the org compatible App department, they can use Orgzly!
I'll go ahead and admit it: I still use an N900 just because of org-mode. I can't really recommend it to anyone else as it's not going to meet expectations of a modern smartphone, but I love it. That and git syncing with my desktop make it really effective for me.
I am currently beginning to use org-mode to keep track of what I do at work. When my boss comes into the office on Friday afternoon and asks us what we did all week, I usually have a hard time remembering what I did on Monday or Tuesday. Having a record of that will hopefully help.
Once I have gotten into the habit of writing down what I did, I hope to also use it for time-tracking, so I can also tell my boss that I worked on Task A for five hours and Task B for three hours.
It is impressive how rich the feature set is, even though I currently use just a tiny fraction of it.
I wrote a pretty simple web app to do just this -- write down what I did, per project or task, and how long I worked on it. I eventually gave up on keeping track of the time, as I found I didn't really need it.
It's really useful, not only on weekly staff meetings, but in our (SIGH...) yearly appraisals.
There are plenty of software projects, both FLOSS and proprietaty that aim to support people in this, mainly because many, many people need to keep track of their time.
On the other hand, each person's workflow and environment is different, so there probably is no one-size-fits-all solution for this sort of thing.
So, given that it is not an excessively complex problem, rolling your own is perfectly fine, I think. (Probably fun, too.)
But in my case, learning org-mode was faster than rolling my own. And of course, one doesn't need to use every bell and whistle.
FWIW, I use OneNote to do this. One section per month, and then a tab for every week. I put high level tasks under each week and put my notes in as appropriate.
I tried using org-mode but it took too much time to learn when the alternative I had on hand (OneNote) was much easier to learn. Yes, I don't get the same feature set with org-mode, but all I wanted was a work journal.
As much as I enjoy bashing Microsoft Office, OneNote is a real pleasure to use. If I had it on my laptop, I might have used it for this purpose, too.
But, alas, my laptop has Office 2007 Pro, which does come with Access (which I have no use for), but without OneNote (I think it was still a separate product back then). IMHO MS Office has mostly gotten worse and worse with each release following 2007, but I really do envy my coworkers who have OneNote on their machines (although few actually use it).
For somebody not wanting to dive into the complexities of org-mode, OneNote is - depending on the platform - a great alternative. Probably, OneNote can do things org-mode cannot, and vice versa. But they address similar scenarios.
I for one have already invested heavily into becoming proficient with emacs, have it open all the time, anyway, so spending time making emacs do even more things for me seems like a good investment at this point.
Also, the result might be slightly confusing but it still is a plain text file that can be read with any text editor.
You can have it in a way... Emacs + EVIL mode make for a pretty good Vim, and with some effort almost all Vim plugins can be replaced on emacs.
You'll still miss some things if you are a hardcore user of a very customized Vim, ofc. I'm ok with using Vim for almost everything and a kind-of-weird-Vim-that-is-actually-Emacs for Org.
It's life changing, lol. Really take a weekend or two to get acquainted with it. (Fight through the emacs tidbits or use evil-mode). You will not regret it.
Emacs assimilates everything to Borg mode as does org-mode. This just isn't the vim way of doing things. What are you trying to achieve and what is missing. There are a few org-mode like plugins, personal wikis, task managment tools around for vim.
I might have to finally try it if so many people are claiming life-changing effects!
I don't create or edit code for a living, for the most part, but I do use vim to edit workstation/server files and side-projects as well as a fair bit for notes and todo lists. I share the notes with an always-on raspberry pi via syncthing, which I can SSH into to check in a pinch.
There isn't much incentive in this case to switch to emacs, then (although the idea of a wearable rpi with emacspeak instead of a HUD has always intrigued). My current todo list for keeping organised, after recently moving off of Trello, needed to be reasonably smart to replace it.
I think the solution is smart yet simple enough to work long term. It has been OK for a month or two now, at least, but I'm still open to improvements. It's basically a vertical kanban board, instead of the usual horizontal one. I don't need time tracking, as I don't bill that way (but if it were automated, again, I'm open to it - could be interesting) but it would be nice to have alerts and reminders. For those I set reminders in tkremind for the important stuff - also copied and synced to the pi. The workflow is this:
- Tasks are entered into the relevant folding section, prepended with a timestamp [F5], with a #tag.
- As tasks complete, I delete/paste [dd/p] into the invoicing section, if required.
- Then [key binding] moves the item to 'the last line of the file' where a log has built up in roughly chronological order, returning the cursor to the same line.
This basically replicates Trello locally, but with the advantage of speed, grep-ability [grep -m 10 '#projectX' todo.txt] and privacy. The other open source kanban options looked good, but I am a big fan of text files, as org-mode users probably are too.
I'm now wondering if org-mode would be an upgrade or an over-complication... acutely aware of the irony of spending all this time on getting organised in order to be more productive.
Both are infinitely malleable to your needs, yet surprisingly effective out of the box for their intended use cases; the tweaking only comes later when you go "I wonder if I can do this." It also opens your eyes when you realize it's all just text (http://blog.vivekhaldar.com/post/3996068979/the-levels-of-em...).
Beware though: you can go pretty deep down the rabbit hole, it can be made over complicated, but if you KISS and keep disciplined, both emacs and org are powerful tools.
Your point could still partially apply to vim. But my main train of thought on reading this, as well as the sample configs offered above[0], is that it really is much too complex for my needs.
The amount of configuration and maintenance required, shuffling todo items around, filing, refiling - even the person whose setup is mentioned elsewhere[0] admits he had 373 tasks at that time - that doesn't sound organised to me!
I'll most likely stick to developing my 'plaintext vertical kanban' system, unless I dabble with the vim clone of org-mode. I do however get the ethos of the thing, and happily encourage it. I saw a fun quote at the top of one of today's HN front page articles:
Laziness is a virtue as it “makes you go to great effort to reduce overall energy expenditure.”
PS - slightly off topic, but saw in another comment here you still use org-mode on an N900 - I need to de-brick mine, but that involves splitting a USB cable and soldering it onto the test pads under the battery. It lasted for 5 years, performing brilliantly, and I was just about to put the easychroot Debian back on when disaster struck.
With that phone/device I had an SSH shortcut on the desktop to my various servers and also ran syncthing on it directly, barely affecting battery life, to keep phone and laptop notes in sync. I can still do most of that on the Ubuntu phone, but can't help feeling restricted. Sure I can enable write access to the system files, but then I forego the updates. Not ideal.
org-mode looks very good, but I am not sure, I want to switch to the emacs universe only for org-mode.
I discovered asciidoc a few weeks ago and so far I love it, I am just experimenting how to use it.
Currently I use asciidoc with:
- Atom
- Atom autosave
- Atom Asciidoc preview package
- My existing project folder hierarchy, where I just place the asciidoc text files.
Many comments here are claiming that org-mode is a "life changer", without qualification. I'm curious, what, specifically, has it changed about your life?
The qualification is not fake. To quote from this tutorial[0], the author says:
I have been using org-mode as my personal information manager for years now. I started small with just the default TODO and DONE keywords. I added small changes to my workflow and over time it evolved into what is described by this document.
I still change my workflow and try new things regularly. This document describes mature workflows in my current org-mode setup. I tend to document changes to my workflow 30 days after implementing them (assuming they are still around at that point) so that the new workflow has a chance to mature.
> I'm curious, what, specifically, has it changed about your life?
It changed my life by consistently improving my workflow and I've become way more productive by doing it. I got impressed on my self when I automate things that seems difficult and time consuming to manually track. Extending emacs never ends when you keep on finding better ways on how to use it.
Some of us OCD types just like having so much detail, which you can get with org. Need to track hours for billing? Org can do that. Need to be able to capture notes/tasks at a moments notice with hyperrefs back to what you were doing and what file you were in? Org can do that. Need to build new habit(s)? Org can help with that.
If nothing else, org helps me to not forget to do things, and also to capture every idea that comes my way. Sure, a lot get thrown out, but at least I can track them and make a conscious decision about abandoning them. Also, I might have been as, or even more, productive before I started using org. But I don't know because I wasn't tracking and quantifying it. Now I can see at the end of the day (reviews and planning supported by org) what I've accomplished and what's left to do.
I'm not a power user, but use Org every day. My init.el even drops me into my org todo list. Top uses:
Engineering notebook. Key combo calls org-journal-entry which I found on the web. It brings up a time-stamped narrowed buffer. I use this in every meeting where note-taking occurs. TODOs can be recorded directly in the journal and can be merged with other TODOs in agenda mode.
Linking. C-c C-l creates a nice looking hyperlink. I link to URLs, local files of all kinds (office, pdf, jpg, etc), or org tags. E.g. I keep a list of restaurants I want to try. I tag by cuisine type, and link to the restaurant's web page. Cycling to DONE time-stamps the entry so I know when I visited. I keep track of books-to-read in a similar way.
Other TODOs. I set the mode cycling to TODO -> IN PROGRESS -> WAITING -> DEFERRED -> CANCELLED -> DONE so I can handle a wide varieties of task outcomes. Also timestamped.
Spreadsheets. Mostly when I have a bunch of data already in a buffer and want to do some quick calculations. Quicker than firing up a real spreadsheet, though it's pretty limited.
HTML generation. Making pretty outlines/notes from my org files.
Gnu-pg. Seamless encrypt/decrypt of sensitive data.
Stuff I tried but mostly stopped using:
Org-babel. It was neat to run Clojure, Python, Ruby, and shell all from one file, pipe data between them, and make pretty tex output from it all. But day to day I rarely need that sort of power.
Calendar. I tried keeping all my recurring and one-time appointments in org. Problem is, I'm forced by work to live in Outlook, so keeping 2 calendars is not worth it.
Agenda. I used to view my agenda to merge everything in todos and calendar. I tend not to use agenda much any more.
TBH, I don't really have the discipline to rigorously update my TODOs all the time. Even so, I'd feel a little lost with out org. As with any todo system it declutters your head. When I realize there's something I should do, I need to get it out of my head into org, else I feel anxious that I'll forget it. Hardly matters that I only wind up doing 1/3 of them. I also rely on it for backup and sync of important notes, todos, etc. (via dropbox).
You'll get out of it what you put into it, but even with a few core uses (for me, notes, todos, and linking) it can quickly become indispensable.
i. You better be using exactly the same org-mode version on all of your computers, because there is no concept of backward compatibility. Making matters worse, there is no restriction that changes have to be documented before the release. I got burned with some presentations when they made major changes to the exporters. The documentation consisted of a statement that they were working on the documentation.
ii. The documentation you find may or may not work. Google is hit or miss because in most cases your search will return an answer for a different version from the one you're using.
This is not to say you shouldn't use org-mode. As I stated at the top of my comment, I use it on a daily basis, so there are a lot of benefits. Nonetheless, org-mode discussions paint a rosy picture, when there are in reality issues that you have to be prepared for.