A New Editor
In my last posts I mentioned that I was evaluating some editors. Again. The basic problem is that I just cannot stand vims modal editing and look & feel, even AquaMacs does not change this. Sadly I also cannot stand the alternatives. Till now. I think I found an editor I really can live with. It was suggested by some people I know but I did not get why they like it. Now after using the new beta for some time I think I am converted.
First let us talk about features. Why did I even bother trying IDEs like Eclipse when I actually do not like those bloated pieces of ... well, do not get me started. I prefer an editor. It is fast, I do not need to create projects and other stuff, do not have to care about anything beside my code.
But I tried an IDE. I have seen this fancy features like showing all your methods, listing files, jumping from file to file in your project,... They have a great strategy - they show you all the shiny stuff and hide the fact that it is still an IDE and just sucks.
So what features should my editor have to compete with an IDE?
- code completion
- easy jumping between files
- split view
- project view - showing all files in a folder
- syntax highlighting for everything I work with
- spell checking
- git / gist integration
- keyboard navigation
I still believe that I do not ask for too much. But sadly the only editor that is actively developed and provides all those features was vim.
And maybe the most important point. I love beautiful things. I work much better when I am surrounded and use stuff I enjoy using. Guess why I prefer Macs,...
I am not alone
Looking at all those emerging projects I am not the only one who wants all those features and cares about stuff like split views. But those projects are either really new and still in the first beta - and I have seen how dead a great project can be even when in development. I am looking at you Intype. - or they are not as actively developed as I prefer it. Textmate, anyone?
So it is possible that those editors will some day be a great alternative and that I will pay 40€ for a piece of software I will only use for some months or a year. Even if the other editors also cost some money. I make my living with IT. And it is never wasted investing in stuff that makes your life easier, provides productivity or just helps you getting the job done.
I admit that I use a mouse. Or a touchpad to be honest. I can remember key bindings and I also use those but for some tasks I work faster when I just move my hand away from the keyboard and click on stuff. Having a project folder on a side of your project, browsing the structure, creating and deleting folders and files just helps me a lot to work faster. I do not have to switch to another window or command line I just do one or two clicks. So a project drawer or filesystem explorer is essential. This does not mean that I do not want to be able to navigate with my keyboard. More on this topic in a few minutes.
Code completion is tricky. Sometimes it saves you a lot of typing. And when it is even able to show you a documentation about methods you are using you save a lot of time browsing documentations or trying to figure out why your arguments will not work. This is not a must have but a nice to have feature.
When you never used an editor that is capable of split views I suggest you immediately download one. An easy example would be working on a homepage. I have 2 windows open. A browser to preview my work and an editor with 2 views. In one view I have my html file and in the other one my css file. Just switching the view without the trouble of placing editors side by side helps a lot keeping all those tags in the right order when working on your css files.
Command-T or from now on Command-P is awesome. You press the keys, start typing and just have a list of files that contain what you just type. One additional keystroke and you have the file open with your cursor at the method you were looking for. Fast, efficient, a pleasure to work.
Since I switched to Zenbo I use my editor to write blog posts. I am definitely not the best writer the world has ever seen. My grammar is not as beautiful as it could be, sometimes I make stupid mistakes and have to look up words in a dictionary. Spell checking is essential. I am working on it but I think there will always be some words I have to look up or need a correction since English is not my native language.
I use git for every project and every piece of code I write. But I always were a bit skeptical using plugins that integrate it with my editor or IDE. Currently it looks like the git plugin works fine and is a nice to have feature. We will see how it works out.
You only know you want it when you try it
There are some features in my new editor I started using and enjoying in a blink of an eye. I heard many rumors on Twitter and read some blog posts how great those are but never thought that I would use them.
One of those features is "distraction free". You basically tell you editor that you want to see nothing beside him. A dark background and only one text field to input your text or code. I would not use this feature to write code but it is a pleasure to use it while writing blog posts. And I will also give it a chance when I continue working on my first book.
There is an integrated package manager helping you to install plugins. It is a nice feature to have an integrated search. I had no problem using the script search on vim.org but if I can have a shortcut I will not hesitate using it.
Having snippet and theme support that is actually easy to use and edit is also really nice. No obscure paths to remember once a year you have to add or edit something is nice.
I guess I will,...
For those of you who cannot guess it yet I am talking about Sublime Text. I will continue using it for my current project which consists of some webdesign and Django development. I will write some more posts and work on Zenbo. If Sublime turns out to be what I want I am going to buy it.
For my next project that is an iPhone application I will stick to XCode. It is another workflow and another kind of project. Integrated interface builders and stuff are also a pleasure. But this will be part of another post. If you are looking for an editor I only have one suggestion: try them all and use what fits your workflow and project best - do not trust people like me telling you why it is great. Experience it first hand.