For the advantages of this concept, see the plain text article.
 Testimonials and Usage
Before keeping most things on paper, I'd have a "Notes.txt" file on my desktop screen. It functioned as scratch paper, annotated bookmarks, clipboard, words of wisdom, and pretty much anything else that was plaintext. I'd start over about every three months, generally discarding whatever was in it (since anything important found its way elsewhere). -- Steve
 TODO text file
The basic idea is to put everything you need to do into ONE plain text file. That means you can see everything just by scrolling up and down through the file's contents, and you look through this file often every day.
- It's technology-independent, you don't need to learn an application, and you'll never be faced with having to re-enter all the information if an application becomes obsolete or you change computing platforms
- You can organise the file the way you want, rather than the way an application requires
- You can extend the data stored in the file in any way, rather than being limited to the data which an application will accept
- Very quick to insert new tasks, very quick to delete old ones.
- Since it's just a (possibly free-format) file, there's really nothing that can be easily automated such as reports or showing only next-actions.
- Hard to summarise, like showing only active projects, or prioritising.
The text file method works really well for me because I use vim (a powerful text editor) under linux and version control. The latest contents of the file are automatically committed into my source code repository each night, so even if I screw up the file or lose the laptop it is on, the most I can lose is one day of changes.
Vim helps a lot to make this a worthwhile method. I couldn't imagine doing it in notepad.
- vim has multi-level undo, so if I make a mistake, I can type 'u' to undo as necessary
- copying and pasting text into named buffers makes it easy to reorganise the file
- moving within the file is very fast, e.g. I just press '}' to jump to the next paragraph (which is usually the same as the next project, or the next day).
Here's the structure of the file which I use.
At the top, current goals or high priority focus issues. That keeps me reminded of what's most important at any time (because this file can get rather big.
Second, several weeks of daily action items. One paragraph per day, for example:
2006-08-05 c - buy label printing device - update 43folders wiki "TODO text file" 2006-08-06 - buy 6 batteries for label printer
The first action item of 2006-08-05 is marked with a 'c' for "complete". I have a very small number of additional codes, including 'x' for cancelled, and 'w' for work-in-progress. It's naturally very important to not mark something as complete unless it actually is complete.
Third, several paragraphs of project actions:
Replace Mailbox - investigate mailboxes for sale - find installer (yellow pages?) - contact installer, schedule replacement day/time - mailbox replaced - sell old mailbox
The project actions are ordered so the next action comes first, or in order of priority.
As I decide to do a certain action on a particular day the project actions are moved to the daily paragraphs, and checked off as completed when done.
I noticed this technique was raised at http://www.43folders.com/2005/08/17/life-inside-one-big-text-file/ and it asks some questions ...
- What tips do you have for people considering the big move?
Nothing apart from the usual - stick to it, find what works for you.
- What tricks do you use to organize, automate, and move around in your huge-ass text file?
Vim is a very powerful editor and it can be scripted to do a lot of things. But I don't use any gimmicks or scripts, vim's viewing and editing capabilities allow me to make whatever changes I need to make to the file very quickly. I used to use 'evolution' to keep my todo list - and also tried many others, including netscape's calendar, korganizer and various web-based and standalone systems, and the main thing I found is that it should be really, really simple to add a new action item. Because I'm doing it all the time. Evolution was the best, because there's a text input line waiting, you just click on it, type the name of the action item, and press enter. The worst type of user interface is the one which pops up a dialog box where you have to locate the place to type your stuff and select priorities and categories and other stuff. However evolution had, or has, a habit of constantly redrawing its window, and that habit was distracting.
- How do you decide where new stuff goes within a multi-thousand line document?
The document is already organised, of course.
- Are you using section and sub-section headings to jump around?
Yes, I have a section for work and a section for personal. One of the disadvantages of just putting it all in a text file is that the structure is whatever your mind says it is, and the editor's job is to just show you the whole file, not summarise it by project etc.
- How do you handle versions and multiple drafts of subsections (like, say, blog posts)
This technique is to manage TODO lists, not blog posts. It's not as if I have only one the text file in my home directory.
- Got any sweet Vim tricks to share?
Splitting the view into two parts using ':split' works very well, as I can see two separated parts of the file at the same time. Use '^W^W' to flip the cursor from one view pane to another.
To move an action item from one place to another, position the cursor on the action item and press 'dd' to delete it. Then move to the line above where it should go, and press 'p' to pull the deleted line out and into the file.
To move an entire project (e.g. when reprioritising, put highest priority projects first), move to the line above the project heading and press 'd}' to delete the entire paragraph, including the empty line above it. Then move to where it should go, and press 'p' to pull the deleted paragraph back into the file under the current cursor position.
- Any point where this approach starts to fall apart?
There are no tools to summarize or prioritize the projects or action items, so when the list becomes really extensive it can be difficult to decide what to do next, among the many candidate action items.
- Have you found you think about your work differently when you work inside only one file?
Not differently, but it means I don't forget things much anymore. "The more you have to remember, the more you will forget". So if something has to happen on a particular day in future, I put the item under that day's heading, and I can't forget it, because it's staring me in the face.
I also use kalarm as a reminder mechanism. That works wonderfully for things which have to happen at a particular time and for things I have to do repeatedly. With my text file, I need to copy any recurring actions to the next date I have to do the action, whereas with kalarm I can simply specify that the task needs to be done once per month, and it will pop up a red dialog box automatically when the time comes to do the task again. My policy is that the dialog box has to stay on the screen until I've done the thing. It helps me pay my credit card bills, by popping up a box a few days before the bill is due. And it helps with regular maintenance, like taking apart the clothes dryer and cleaning all the lint which got trapped inside it (once every 2 years), checking the car oil and water (every 2 weeks) and cleaning the airconditioner return grille (every 3 months).
Other people who use one big "todo.txt" file or something very similar:
- "How does a geek hack GTD?" by ...
- "Living in text files" by Giles Turnbull
- "My Big-Arse Text File - a Poor Man's Wiki+Blog+PIM" by Matt. (One of the commenters mentions putting all todos in one big spreadsheet, rather than one big text file.)
- "Backing up One Big Text file" by Douglas Johnston (?)
- "Productivity: Reducing Friction in Your Todo Lists" by Robert Daeley
- "Living in text files" by Daniel Bergey
- "Sticking to your system after a year of GTD" by mike; uses Vim, "The Vim Outliner", HotKeyBind, and SyncBack. (SyncBack is to keep the todo.txt file synchronized between several computers).