Evernote Revisited

A couple of years ago, I wrote a slightly negative post about Evernote, complaining about a lack of support for the tab character and also about various buggy aspects with regards to its handling of formatting. I did say at the time that if it wasn't for these small issues, I thought that Evernote would be amazing. I also said that I would write another blog post raving about it if these niggling issues ever got resolved.

My main reason for wanting tab character support was so I could use Evernote for code snippets. Evernote's tagging is ideal for this.

For the past year or so, I've used an open source wiki app called Wikidpad to store my code snippets. I stored the Wikidpad files in a Dropbox folder so that I could access them from multiple computers. This is a local wiki which is a native Windows app rather than being browser-based. I had a 'table of contents' page containing a list of languages on the main wiki page, then in those subpages I'd break those languages down into categories (eg. File I/O, database, etc). It worked well, but certainly not as flexible as a tag based system like Evernote's.

Well unfortunately Evernote still hasn't added tab support. What has changed which has made me revisit Evernote for storing my code snippets is that I've recently changed sides on the age-old tabs vs spaces argument. For my entire programming career, I've used tabs for indentation. I've never even tried to use spaces instead. I know that all IDEs and code editors have an option to use spaces instead of tabs, but I've never used it or even wanted to until recently. I can't say why, but I decided to give spaces a try instead. I think one trigger annoyance was when writing Linq queries over multiple lines. Using spaces made it far easier to neatly align the queries. I must say that much to my own surprise, I'm actually much happier using spaces now for various reasons.

Anyway, to get back on track - now that I use spaces instead of tabs, I no longer care if Evernote supports them! So I've migrated all my snippets from TWiki to Evernote. And I love it! The tagging support makes it ideal. Especially with the "Hide Unassigned Tags" option. This basically means that it'll only show tags that are relevant to the context of the current selection. I have tags for different languages, and tags for categories of code (eg. file-io, linq, formatting, etc). When I click on one of these tags, I then can only see related tags - so it's really quick to drill down on a snippet that I'm looking for.

One frustrating point is that when typing the tab character into Evernote itself, it inserts 5 spaces, and there isn't an option to change this. I personally use 4 spaces for a single indentation. This isn't a huge issue though, as most of the time I've copied and pasted from my code editor into Evernote which already has 4 spaces for indentation. So I only see this issue if I need to modify a snippet directly in Evernote.

One of my main reasons for finding a solution outside of my IDE is so that I can add snippets for various languages and platforms. I also include useful command-line snippets, or general how-tos. If you always use the same language and platform, then your IDE's snippet solution is definitely worth considering. My primary IDE is Visual Studio, and this has native support for snippets. Also if you use Resharper, this also has quite advanced snippet support.

Enough with snippets! ...

So far, I've only really talked about using Evernote for code snippets. Obviously, Evernote is a general note taking solution, and snippets are just a single use-case. I've also started using Evernote much more for all my note taking. The ability to create an offline notebook that doesn't sync with your Evernote account is great for using at work. I don't think my workplace would be happy if I synced work related notes with my Evernote account, but being able to have a local-only notebook gets around this. Obviously, ensuring that local notebooks are backed up in some form or other!

Infact, the more I add to Evernote, the more I realise how powerful it is. You can pretty much put everything in it. The search is very powerful, and with the tagging you can quickly find your notes no matter now many notes you've added over however long a period of time.

Todo Lists

Another use-case I use a lot with Evernote is for todo lists. I tend to have a main 'todo' note which I use for my current tasks at work. Then for more involved todo entries, I just have a note link (see section below) pointing to a feature-specific note. Two keyboard shortcuts that I find invaluable for these todo lists are ctrl-shift-b to start a bullet pointed list (you can use tab to indent/nest the bullet points); and ctrl-t to toggle strike-through (to mark it as complete). Evernote also supports checkbox style todos, but I prefer using the strike-through because it's more keyboard driven.


Note Links

Note links are a feature I've only recently found. If you right click on a note in the note list and choose "Copy Note Link", then you can then paste a hyperlink to that note into any other note. This makes navigating your notes even easier, and means you can easily set up a note hierarchy.



Whilst a lot of the issues I mentioned a few years ago haven't actually been resolved, and I still find many formatting issues with the Window client's note editor - I find Evernote so incrediby useful, that I just don't care anymore. I've got used to the little querks, and I work around them. So, niggles aside - thank you Evernote for a great service!


Recent Posts

Featured Posts

.NET Oxford Links