
Ask HN: Best code editor? - hajrice
Hi, I currently use Notepad++ which I'm really satisfied with. I love Visual Studio but is just a hastle to work with sometimes(long loading time, not useful when working with 1 code file(etc), no reason to create a new "web project" instead of a file, etc).<p>I'd love to know what you use and if you're satisfied with it?
======
nixme
Emacs.

And yes, I'm very satisfied with it. Everytime I see a feature in another
editor I like, EmacsWiki usually has an implementation or guide.

Plus emacs has org-mode...

~~~
yangyang
I used vim for over 12 years before switching to emacs. The thing that made me
switch was looking at some insane vim-script to indent Python (or something
like that - I don't rememember).

I love emacs now. Yeah it takes ages to learn, moving around isn't quite as
quick as hjkl in vi, emacs lisp isn't perfect, but it really is worth it.
Nothing is as powerful.

23 even lets you connect to a running process from a tty and GUI
simultaneously.

And yeah - org-mode is great. As is the gdb integration.

------
mdasen
I'm a fan of NetBeans. It isn't for everyone. Sometimes one wants something
lightweight. However, NetBeans has a lot of nice things. Refactoring helpers
are wonderful. They make it so much easier to change the name of something
when its meaning changes so that the code stays clean. Like many visual
editors (rather than command line things like vim), it can do tabs and show a
tree of files on the left pane. It supports a lot of different languages and
even has some great hooks for running a project on your local machine. It can
also detect some problems - unused variables, unused imports, syntax problems,
etc. which means that you can catch small errors fast.

It does have its faults (like any piece of software), but it can be very
helpful.

~~~
_sh
I spent an afternoon wandering around the NetBeans profiler and have not
opened Eclipse since. It has spoiled me.

<http://www.netbeans.org/features/java/profiler.html>

------
travisjeffery
I switched multiple times for long periods, learnt each's scripting languages,
customized the hell out of each, wrote extensions and in the end right now I'm
happiest with being a speed demon with my vim keybindings-fu.

But really the only editors worth learning and using are Emacs and Vim, decide
between which one or use both.

------
camflan
vim

~~~
RiderOfGiraffes
another +1, but you need to learn to use it properly. Tags, windows, changing
files, external commands, macros, etc. It's not user friendly, in fact it's
downright user hostile, but it's powerful, and written for hackers.

~~~
mrshoe
vim is one of the most user friendly pieces of software I have ever used. The
interface is incredibly efficient. The designers put great effort into making
sure that common tasks were one or two keystrokes that usually don't even
require moving your fingers off the home row.

Just because it's not the most _discoverable_ interface doesn't mean it's user
hostile. I wish more software designers would look at vim as an example. A
text editor falls into the category of software which users spend a ton of
time using. For those types of software a steeper learning curve is completely
accpeptable if it means the users can operate the software without even
consciously thinking about it once they've learned how to use it.

~~~
RiderOfGiraffes
Reading this crystalised some thoughts I've had for a long time, but never
been able to express clearly.

Yes, _vim_ is a non-discoverable interface.

<http://www.google.com/search?q=discoverable+interface>

( Side note: from that search I found this:

<http://www.catb.org/~esr/writings/taouu/html/ch01s01.html>

There it lists "... concision, expressiveness, ease, transparency, and
scriptability." It then expands on each, but mysteriously quote "Discoverable"
in place of "scriptability." Very odd.

But I digress ...)

Now the question is - without having to wade through plodding tutorial after
plodding tutorial, how can we help people discover the interface? This doesn't
just apply to _vim,_ it applies to your web site, or application, or even your
company procedures.

It's now a long time since I learned about _:sp_ and _ctrl-w_ to create and
move between windows in _vim_. How can we help others find these things? How
can we help them find the fast way of doing things on our web facility?

As a parting note - I wouldn't equate efficiency to "user-friendly."

~~~
10ren
First problem: vim has already implemented any feature you can imagine, with
more refinements and related features than you can imagine. But you have to
imagine it before you can find it...

Second problem: And even then, you can't find it in the help (it's organized
like a professional index - like that of a legal textbook - you have to know
what you're looking for before you can find it). Google solves this problem.

Google also helps solve the first problem, of "what to search for": you search
by describing the difficulty or problem you have. A brilliant resource for
this is Stackoverflow. It's works well for developer-centered, technical
questions. The internet is the vim help: "a user generated FAQ". But this is
just a way to cope with poor discoverability - the real answer is to design
the interface to be discoverable.

------
vyrotek
Visual Studio 2008 - Love it. I don't notice any load-time issues, but maybe
thats because I never close it.

~~~
j79
I'm a huge fan of VS as well. When I'm at home on my personal machine, it's
always a bit of a letdown when Intellisense doesn't kick in...

~~~
TeHCrAzY
I don't understand, why do you not have intellisense at home? The Express
editions have intellisense, right?

<http://www.microsoft.com/express/>

------
alx
Textmate

~~~
barredo
Love textmate, use it as main text editor, but it's time for Textmate 2 and
its split-screen option.

~~~
davepeck
TextMate needs split-screen today. It still surprises the hell out of me that
they haven't issued a 1.X point release that adds this feature. WTF?

~~~
thismat
That's the thing that really depresses me about TextMate, I use it and like it
a lot, but it's starting to feel old and could really use a fresh coat of
paint and some new pictures on the wall.

------
boskone
In the last 2-3 years emacs has just improved and improved. Like most it
originally took me 2-3 distinctive efforts to "go emacs", but it pays off.
Emacs is just outstanding if you are a code slinger.

If your an admin and edit a couple of config files now and again, maybe VIM,
though IMHO emacs is superior for even simple editing as well.

Emacs, Emacs, Emacs.

------
alrex021
Aquamacs (Emacs for Mac)

<http://aquamacs.org/>

~~~
yangyang
I really didn't get on with aquamacs. It'll do your head in if you use emacs
on other platforms.

You can use other emacs builds on mac OS. I use Carbon Emacs. Emacs 23 has a
native cocoa build now.

~~~
jimbokun
It's great, though, if you are used to Mac applications and learning Emacs for
the first time. Kind of like training wheels for Emacs.

~~~
charrington
I used Aquamacs for 2-3 years but never really learned emacs until I swapped
Aquamacs for Carbon Emacs and learned the real thing. Training wheels is a
good analogy. You aren't really riding a bike if you use training wheels and
they slow your progress in actually learning. Sure you can get to your
friend's house, but you look like a dork.

I found the Emacs Starter Kit (<http://github.com/technomancy/emacs-starter-
kit/tree/master>) and the Meet Emacs Peepcode Screencast
(<http://peepcode.com/products/meet-emacs>) to be awesome. After a couple
hours of working through the screencast, I was a 5x better Emacs user than I
had been after 2+ years of Aquamacs use. You have to "get" Emacs and Aquamacs
doesn't force you to do that. The $9 for the Peepcode screencast was the best
money I've spent in a long time.

------
jaddison
UltraEdit and Komodo are good. Komodo has a free version, I think.

~~~
chaosmachine
Komodo Edit. It's open source.

<http://www.activestate.com/komodo_edit/>

~~~
CraigBuchek
I've been using Komodo Edit a lot lately. The nice thing is that I get the
same editor in Windows, Mac OS X, and Linux. And the snippets are nice,
similar to TextMate.

------
jdp
Lately I've been using Textadept -
[http://caladbolg.net/luadoc/textadept2/manual/1_Introduction...](http://caladbolg.net/luadoc/textadept2/manual/1_Introduction.html)
\- and I like it a lot. It's a lot like vi in that most menu items have a key
sequence, you can split buffers, but everything is in GTK. It's also 100%
extensible through Lua, the only drawback is that there aren't many themes and
theming it yourself could be a little smoother.

------
rwolf
gedit didn't make the list yet? for shame!

syntax highlighting, auto-indentation, line numbers, multi-line tab, multi-
line comments (with a plugin), installed whether you want it or not with
ubuntu.

~~~
grandalf
gedit is a nice editor... I used it before switching to emacs... Some of the
emacs modes offer a nice bit of additional power that gedit is lacking, plus
gedit requires more dependency on the mouse than emacs.

but for people who are asking about textmate for linux... it's called gedit.

------
jawngee
I use floppy disks and magnets. You aren't worth the trash you produce if you
can't code without a keyboard ...

------
sfk
This thread would be incomplete without mentioning ed:

<http://www.dina.dk/~abraham/religion/ed-standard>

------
johndoe77
Eclipse

~~~
Legion
I have come to really appreciate Eclipse. It's come a long way since the first
time I tried to use it.

Eclipse, plus vim in a terminal window, take care of all of my editing needs.

~~~
jacquesm
Eclipse (and intellij) are both resource hogs though.

~~~
Legion
I won't necessarily dispute this, but those "resources" on my system are there
to be used.

Sometimes it seems like people buy quad-core machines and 8GB of RAM, and then
are angry if an app uses more than 1% of CPU and a few MB of that RAM.

I'm not going to sit here and say that Eclipse's hour-long startup time
doesn't annoy me, though...

~~~
jacquesm
The hour long startup time was what I had in mind, time is my most precious
resource.

The RAM I couldn't care about, that's fairly cheap these days. I haven't a
clue what that software does when it starts up but there has to be some way to
optimize it.

Intellij is not much better.

~~~
greyfade
Anything that takes more than a minute to load when my system has a load
average of 35 is simply _not_ worth using.

It's why I gave up on Eclipse a while back. (Well, that, and its tendency to
crash with out-of-memory exceptions when using the syntax parser set to
"full." That was the final straw.)

------
mkeblx
Notepad. It's a simple, feature-rich, light-weight editor. The learning curve
is long and steep though, but well worth it. I've been using if for 3 years
now and still don't know all it's bells and whistles. Best of all it comes
preinstalled on a lot of OSs so you don't have to go through a laborious
install process.

~~~
mhansen
Urgh. I actually see people in my computer science classes use Notepad to
write code... it pains me.

------
lewro
Coda on MAC is great.

~~~
Legion
Coda drives me nuts just because it is Mac (not "MAC") only. I bounce from
machine to machine, and I hate it when a tool I like on one machine is simply
absent on the next.

I know Panic is all about Mac software, but I wish they would find a way to
get apps like Coda up and running on other platforms.

~~~
randallsquared
Yeah, the difference between Coda at home and vim at work (where I use Windows
as a terminal client to Linux dev boxen) has driven me back to vim on my Mac
as well, just to avoid the finger-confusion. :/

------
cema
I use a variety of editors, and it all depends on what kind of editing I am
doing. Emacs is good for a lot of things, so I usually keep an instance open,
but I do not always keep up with the language-specific modes, so I also use
language-specific or project-specific software such as Visual Studio or
Blackberry JDE (or even occasionally Netscape++) on Windows.

Emacs however has a steep learning curve. It is worth it in the long run, but
I understand why many people shy away from it. Modern emacs distributions have
icons and helpful toolbars and are not too intimidating, so if you think about
it, give it a try.

Oh yes, and I run vi (vim or gvim) once in a while just so that I would not
forget what it feels like, that's all. :-)

------
talleyrand
I love Geany (for Linux and Windows) <http://www.geany.org/>

I spent a while looking for a replacement for my old favorite PSpad when I
switched from windows, and this was it.

------
yters
I like writing things down with pen and paper, then running it through in my
head. Once everything is perfect then i might touch a keyboard.

Manipulating things in the head is much quicker than anything else I've used.

------
JimmyL
Depends on what I'm doing, and in what language. For Java/Python projects,
Eclipse (with appropriate plugins). For Ruby, jedit. For one-file shots,
Notepad++. For live editing of remote files - which I shouldn't be doing - E
or WinSCP.

Ultimately, I don't think IDEs are something for which we can determine a
"best" one. We can divide them into tiers - vim is more powerful than Notepad,
for example - but once you get to that top tier of functionality it's all
about what you as an individual are used to and have customized to your
workflow/needs.

------
midnightmonster
scribes <http://scribes.sourceforge.net/>

~~~
shawnjgoff
Thanks! That looks superb.

------
jacquesm
If you want to go commercial on windows check out ultraedit.

------
oneplusone
E. Stupid name, great editor. It is like TextMate for windows.

<http://www.e-texteditor.com/>

------
th0ma5
jedit

~~~
andrewl
I used jEdit for a long time. It's an excellent editor, but I left it behind
for Vim. I had to spend a lot of time on remote machines and I needed
something with a console mode.

It's my impression that it was orphaned. Is it still under active development?
I'd like it to keep going.

~~~
memorius
I use Eclipse for java and xml, falling back to jEdit (which I used
exclusively for several years) for pretty much every other file type.

jEdit is great for its impressive range of language syntax highlighting
support, large selection of small and useful plugins, good search/replace
features, and ease of writing your own syntax highlight modes, recording
macros, etc. As others have said, it has the power of emacs or vim, and
everything is customizable, but it lacks any substantial barrier to entry.

It also has the advantage that you can use the same user profile on multiple
platforms (e.g. linux/windows) - before I ditched my Windows machine I ran
like that, rsync'ing everything to/from linux at work.

It's certainly still being developed, though activity is less than in the
past. Last release was July: <http://jedit.org/index.php?page=devel#schedule>

I've found that the latest 4.3 releases are very stable and largely feature-
complete for the purposes I use it for.

~~~
chaboutime
I've been using jEdit for years now for all non .NET dev which I use Visual
Studio due to code insight mainly (who can remember all the library stuff!).

jEdit is great, it works on both Windows and Linux with no visual quirks, you
easily make up your own syntax for custom languages, it has a console, a file
system and a project viewer plugin.

Also it has subpixel sampling for fonts which keeps my eyes not falling off
the sockets after long time hacking. Finally a feature that I have not found
in other editors in the custom folding modes (like the region thing in VS)
which makes it easy to understand the structure of long files.

The only negative issue that I 've noticed so far is the missing character
substitution for foreign languages due to the Java thing. For example if you
use a monospace font other than courier new and your code/resources contains
multiple languages, english, greek, japanese etc you get squary blocks all
over the place. All native Windows and Linux apps do automatic font
substitution!

------
jakecarpenter
Emacs would be a great OS if only it had a good text editor...

Seriously though, isn't this like asking what kind of car is the best to
drive? I like vim, nano, n++, and textmate, but the "best" for me changes as
often as my mood.

------
alx
nano

~~~
mahmud
it takes a real man to admit that, bravo!

------
joe_bleau
Codewright. Very satisfied (since '01!). Too bad Borland killed it.

Ultraedit isn't bad, but it's not in quite the same class as Codewright.

------
icey
My guilty pleasure is editpad pro on xp.

I should be using other editors, but I always end up using it whenever I'm on
a windows box.

------
moai
Geany

------
ElbertF
SciTE on both Linux and Windows. Simple and highly configurable.

------
beta
Lets not forget good o'll gedit!

No but seriously, gvim all the way.

------
metachris
i use bluefish a lot and like it very much: <http://bluefish.openoffice.nl/>

------
parse_tree
i program in C the most , and for that, hands down emacs is the best (I think
its arguably the best period as well).

C + emacs + gdb > sex

------
matttah
I use Kate for GUI and nano at command line.

------
MrSomeone
Crimson Editor.

------
merrick33
Coda love it, used to use textmate

------
mdoar
emacs, 20 years, nothing else comes close

------
synnik
Butterflies.

------
wlievens
Eclipse

------
californiaguy
If you're a unix dev and want to be taken seriously, use Emacs or vim.

Otherwise people will just laugh at you behind your back. Or to your face.

~~~
shawnjgoff
Or joke about you in irc while secretly not using either tool themselves.

~~~
thismat
This just summed up exactly why I don't use IRC anymore.

------
drhowarddrfine
Google the same question and join the thousands of other threads that have
asked the same question just in the past week. Continue on to find the
millions of threads that asked the same question over the past decade.

------
hamidp
Visual Studio + viemu for vi keybindings. The sum of the two is far greater.

