Note: This post has been migrated from an older blog. If you want to know, I’ve settled on Visual Studio Code.
As an aspiring programmer, I’ll be spending a whole lot of time in the text editor typing up code. While Notepad, gedit, and TextEdit are awesome preinstalled text editors, they’re rather basic compared to all the awesome editors I hear about like Brackets, Sublime, emacs, vi(m) and Notepad++. Over the next couple of weeks, I’ll explore these editors and pick out the best ones for the job. Note that I won’t be looking into IDE’s like Jetbrain products, Visual Studio, Eclipse and the like, that’s for another time.
On my search for my ideal editor, I will look out for the following things,
- Syntax highlighting- Syntax highlighting will let me know if I’m typing stuff that makes sense, such as saying print instead of plrint-along those lines.
- Autocompletion- I’m really lazy. After all, it’s annoying to write up document.getElementById all the time (jQuery simplified this to
$(‘#’)). It would be nice to have an editor that understands what I want it to do in a few keystrokes. Bonus points for supporting framework specific syntax like Django or Meteor.
- Quick run/compile/refresh- It would be nice to have a good feedback loop in which I get to see the product of my work right there and there, especially for websites and stuff. Also, it saves me time that I would have wasted from switching to the terminal and typing in the launch command (unless the framework auto-reloads). Bonus points for being able to “live edit” and see my changes as I code.
- Git integration- Instead of switching to a terminal to work with git, being able to select a menu or use keyboard shortcuts to perform git operations like commit, diff, status, push and the like without leaving the editor.
- Markdown viewer- Ever since I’ve worked with GitHub and had internship interview assignments which require Markdown, having an editor show formatted Markdown would be appreciated.
- A pretty interface- I guess I’m shallow, but the interface has to look sexy too with a nice range of themes to pick from and a decent amount of customization.
- Quick startup- I want an editor that’s ready to go the moment I open it so I waste no time getting down to business.
- Portability- I’m not at my laptop 100% (although it’s close) so I’ll need to
- Some sort of awareness- It’s rather hard to explain, but I know it when I see it. For example, when I paste something, it would know where it belongs in terms of indentation instead of inheriting it from where it came from. Also, it should be able to understand indentation levels and match parenthesis, commas and the like.
- Wide range of extensions- If the editor itself doesn’t have every feature, allowing the community to improve upon the editor through extensions seems like a great idea.
So far, I sound like a consumer who only seems to ask for stuff without doing anything to deserve it. It’s commendable that these groups have taken the time and effort to create these editors that have made programmers more productive. I’m not sure how I can give back to the community, but they deserve a pat on the back for their hard work.
The editors I have on my shortlist are Sublime Text, Adobe Brackets, Visual Studio Code, Notepad++, Atom, Komodo, vi(m) and emacs. Over the coming weeks, I’ll spend a week working with each editor to see which one works best. First on the list is Sublime Text 3.