A note taking system in the terminal

Since many years ago I have constantly searched for the best tool for me to organise my memory in notes and todo’s and other documents or writings.

I have tried the giants in the industry of todo managers and note taking apps. We are talking Evernote, OmniFocus, OneNote and a like. Each of them quite good in many aspects and will certainly fit a lot of peoples needs, but I usually find something complain about 🙂

The Main Point

I found out that I actually don’t need a todo manager, since I really don’t have a need for categorising, contexting and tagging and what-not on my todos – a simple list will often suffice.

Of course: When a todo turns into a project or task its a totally different ball game. More on that later.

To me most of my todos are short and sweet and have equal priority, they are just stuff I need to do asap. Whether I do this one before the other often doesn’t really matter. Often a daily target list is enough.

Now, what I really need is a system taking care of my memory! Who hasn’t got memos all over the place? These are not todos, but simply stuff you need to remember…right now.

It could be stuff other people should to, a todo that is not your todo…but you need to keep tabs on it anyway. Could be a reminder of an event, like the boss’ vacation time and the talking points for the next meeting with him or a note that your colleague just had his fourth donut today, or a quick note on a recipe for hazelnut cookies.

So, I am really talking about a note taking system and I’ve tried a lot of those as well. The main thing they lack is speed and efficiency, and also for me it is keyboard efficiency! Noting bothers me more than having to grab my mouse or use the touch pad in the middle of something ! It really breaks the flow, so anything with only a mouse or touch pad is out for me.

What I want is the following functionality:

  • fast to search and enter information
  • fast workflow in processing, combining and storing information in anyway you want
  • It should not slow to a crawl in search just because I have a lot of text and files
  • One should be able to organise and search information the way one likes it
  • Information should be searchable by dates, key words, body text, document size or what ever one wants
  • totally usable by keyboard alone without too many difficult to remember keyboard combos
  • the ability to save a search for later and bring up the old search  result again immediately
  • efficient with a low footprint on my laptop

So,  yes, command line note taking in plain text files! Terminal setup! I have done command line for a little more than 6 months and really like it, and keep turning back to it after short stints with NValt.

I like Notational Velocity (NV and NValt), and it is still installed on my machine. It comes close, so very close, to be perfect, but, for me, it still lacks speed when searching larger amount of text (I think it searches everything, when you start typing), even it is the fastest contender so far. But it certainly lacks the terminals ability to process multiple files in one go after you’ve found something.

In the terminal you have tools to use for almost any processing with text files:

  • Selecting and extracting only part of a file or multiple files. Could be 1st line, last line, any field, word or column or line.
  • Anything you find in a file or otherwise process can be piped to a multitude of commands or actions or new files. Say you have a meeting about a task, so you could find all relevant files on the task, CAT them into one file in one command and bring it too the meeting. Maybe spice it up in an editor of your choice.  Or just open them all in LESS viewer. LESS is one of my favourite tools on the terminal. It opens instantly no matter how big or how many the files and has a multitude of builtin tools, including multiple file search (of the files you have opened with it), one key-stroke opening of your favourite editor with the current file. Then edit and save and quit the editor and you’re back in LESS with the updates, ready to continue with the rest. Mark spots in files with two key-stroke and jump to any mark with the two key-stroke back and forth. The one key-stroke close of LESS brings you back to the command line…fast, fast, fast workflow!
  • Simple scripting can make life much easier. I changed my note taking directory and file configuration to something entirely different for performance purposes. The conversion was done by a 20 line script I made my self on the fly. Files where made with new names derived from the old index and separate body text was copies into the new files and all was saved under a different directory structure in less than a second. The nice thing about scripts are that they can be made to do something as test before attempting it for real.
  • Inserting words or other at the beginning of a line or at the end, also for multiple files
  • Any information on a file can be viewed easily and used for processing in any way you want.

The terminal has been good to me:

  • Searching stuff is easy and blindingly fast (know your tools!)
  • workflow is eminently fast and efficient
  • I am not a UNIX programmer, but I have taught myself some essential stuff rather easily
  • terminals footprint is around 40MB in the memory of my macbook air
  • my notes syncs with Dropbox fast because of the small file sizes.
  • total control of my note/todo/documents/reminders/memos configuration and setup