The perfect editor...

4 points by dlikhten ↗ HN
@wycats mentioned that dev tools may be worse than they could be because OSS is drowing many of them out...

So inspired by this, I was thinking: What would it take to make a good text editor. One that not only works, but everyone wants to use and extend. That means that if you want modal, there is modal. If you want emacs-style there is emacs style.

Obviously "features" are not what we need, those will be built. There has to be a something for that editor to gain critical mass, become mainstream accepted, get support from companies, etc. and of course companies should be able to build a business model around making mods for that editor, thus there is incentive for companies to develop.

10 comments

[ 3.1 ms ] story [ 32.9 ms ] thread
Textmate is the closest thing to ideal, imo. Texmate 2 is coming (if you are a believer), and Sublime Text 2 is turning out great for windows. We are very, very well provisioned at the moment. There will never be a perfect, universal editor; trying to please all makes you please none.

So, what are you looking for in an editor that you couldn't find?

IntelliJ vs Textmate for Java development. The advantage of IntelliJ is pretty obvious, refactoring tools are probably #1. However that is not to say that TM will fall short.

Also I would like to be able to use the power of TM + Vim all in one shot. Clearly not everyone wants to write plugins in vimscript only.

If features are simply going to be built, you already lost the battle. Software is about tradeoffs and design decisions.
What do you have if you do not have features? What are you going to gain critical mass with? A catchy jingle? Funny documentation?
If you want to edit text and no time to learn emacs its "jingle". Thats right, we have a name for this editor.

My point was not to focus on what features the editor would have, but what infrastructure it would have which would allow us to have "the one" editor that satisfies people, and companies can be built around, vs tons of diff editors each with diff modes of operations, diff apis, diff plugins often repeating eachother, etc.

I guess I did not distinguish features/infrastructure in the same way you do.
I think editing text is a solved problem. Apart from that there are so many different text editors, that there is a perfect match for everyone. It's like hammers.

But how many times are you really editing text? Instead of some data structure that is somehow represented as text. This applies to configuration files, code, heck even human language.

It's can be easy to get distracted by the syntax and forget the underlying structure that you're editing. Because of that, I think the future is in editors that understand the semantic context, let you focus on that and hide as much as possible of the rest.

Erm, the problem is that all these editors are implementing something amazing, and something shitty. So there needs to be a way to give people the hammer they like without sacrificing the rest of the toolbox.

This is why people like command-line tools, they are useful anywhere in any editor, but not everything is for that, or maybe it should be.... Maybe we need some service that runs on a java/ruby/python project and feeds you autocomplete info that any editor can access... HMMMMMMM!!!!!!!!!!!

This is why I really liked EmEditor. It had neat features like vertical selection and native CSV support. It's great being able to switch between filetypes and have the editor automatically adapt to what you're working with.

EmEditor also had better Find/Replace support. TextMate likes to freeze up while searching through files, and a lot of other editors seem to just shove the Find/Replace dialogue wherever there's some extra space. I think there's a lot of room for innovation here.

Besides that, I mainly just want a clean & configurable environment. TextMate does that well, since I have a project drawer, tabs, symbol jump list at the bottom, and nothing else.

Edit: For what it's worth, I've been using TextMate for about a year, and I'm in the process of switching to Vim/Vico.

Its kind of interesting that everyone who plugs an editor in this discussion talks about OS specific editors...