A note taking system in the terminal

20150919173745 4pl_JR_blog_wordpress
Saturday 19/09 – 17:37
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, contexts 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 need for a note taking system and I’ve tried a lot of those as well. The main thing they lack is speed, flexibility and efficiency, and also for me we’re talking keyboard efficiency! Nothing 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

…and more.

So, yes, I realised, command line note taking in plain text files! Terminal setup, I had to try. 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 and flexibility when searching larger amount of text (I think it just 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.

Command Line Processing possibilities 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. Inserting words or other at the beginning of a line or at the end, also for multiple files

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 at work. 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 between files. 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 mere second. Creating the script took 20 mins with try runs. The nice thing about scripts are that they can be made to do something as test before attempting it for real.

Any information on a file can be viewed easily and used for processing in any way you want. You could quickly find files based on their size or their age. Created a few quick notes in a hurry and forgot their names? Just search new files created the last hour or yesterday or whenever.

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 and I can use my files with any tool anywhere, even on my mobile, since they are plain text.

I have total control of my note/todo/documents/reminders/memos configuration and setup

I will provide some user experience in future posts.