

Ask HN: What editor do you use? - GrandMasterBirt

More specifically then the general title, what editor (or IDE) do you use, and for what languages. Why do you use this editor, and what features does it give?<p>I am most interested in Python, Ruby, and Javascript.<p>I currently use Aptana for javascript editing. It gives me a nice editor (I like eclipse editor), a 1/2 useful outline, sometimes actually does auto-completion of variables instead of me having to type it all out, A pretty decent code formatter, and a tad bit of syntax errors as you type. However I am not a big fan of it, it has a bunch of features but its more of a jack of all trades master of none editor. Most features are incomplete at best.
======
andrewljohnson
Eclipse, and I mostly hack in Python and Javascript. Why, why you say?

I guess just three main reasons:

1) I am a very visual person, and like to see the project hierarchy. I like to
click the file I want, instead of just using my keyboard. I know this flies in
the face of the purist Emacs and Vim users, but I'm only about half hacker,
and I like my clickey click.

2) I like the tabs at the top (as opposed to buffers that you can't see). I
like to see the group of files I'm currently working with.

3) I like the Aptana plug-in, which does nice mark-up of HTML, Javascript,
etc. It makes Eclipse a fairly nice web coding editor. I also like Pydev. So
Eclipse supports all my favorite languages.

I do wish Eclipse were faster and stripped of many of its components. Also, I
do use the command line for things like SVN and running commands in the
terminal like "python manage.py runserver." But I like Eclipse as an editor.

Maybe it's just because Eclipse is what I'm used to. I suspect that is the
root of all preference.

~~~
1gor
Emacs can be very visual if you use ECB (check
<http://emacsonrails.drozdov.net> screencast for an example):

a) A directory tree b) a list of source files in the current directory c) a
list of functions/classes/methods/… in the current file, (ECB uses the
Semantic Bovinator, or Imenu, or etags, for getting this list so all languages
supported by any of these tools are automatically supported by ECB too) d) a
history of recently visited files, e) the Speedbar (directory hierarchy) and
f) output from compilation (the “compilation” window) and other modes like
help, grep etc. or whatever a user defines to be displayed in this window.

~~~
andrewljohnson
You always get this answer from emacs users. "Emacs can do such and such."

But the reason Eclipse probably hooked me is it does these things out of the
box. There's just such a huge barrier to entry to using emacs, that being the
burden of configuring it to your liking and/or learning the arcane keyboard
shortcuts.

------
dhotson
I use Vim & jEdit.

I use Vim for editing stuff from a shell.. mostly small to medium size editing
tasks. It's really good once you've got it set up properly. You can get all
the usual stuff you get in IDE's such as syntax highlighting, split windows
and tabs, autocompletion, source control integration.. the mouse works great
too. Actually learning how to use Vim effectively takes some practise, but
it's totally worth it.

For more heavyweight editing/programming tasks I use jEdit.. it's a really
good editor for nearly any language. You'll probably want to get some plugins
for it though, the vanilla install is a bit basic.

------
SwellJoe
vim or emacs: pick one and get back to work. Editing text is a solved problem.

~~~
Prrometheus
I'm learning Python in emacs after learning Matlab with its default editor and
environment. I miss the visual file trees and the easy visual debugging,
though I haven't completely gotten used to the emacs way of doing things yet.
It does strike me that learning the emacs way is harder.

~~~
alexkay
Debugging is overrated, at least for Python. Have a clean codebase with a good
test coverage and you will never miss the visual debugger.

~~~
Prrometheus
Doesn't emacs really make more sense for a low-level language, though? A
programmable editor seems like it would be more helpful with more code and
more code repetition. Maybe it's because I'm starting with Matlab/Ruby/Python,
but I really don't get why emacs and vim are so awesome.

I'm following the advice of the sages and learning emacs anyways. But mostly
it's because I figure the sages are smarter than I am than actually seeing the
need for it.

Also, debuggers are REALLY useful when you're learning a language for the
first time. I shudder to think what my last machine learning project would
have been like without a debugger. Maybe when I'm an ace, I can "just write
good code and tests". But I'm not an ace, I'm a newb. I like seeing what my
variables are doing and trying out commands that I think might do what I want
them to do.

~~~
SwellJoe
_Also, debuggers are REALLY useful when you're learning a language for the
first time._

Yes, they are. I thought we were talking about text editors?

~~~
Prrometheus
Don't you edit text when you are new to a language?

------
shutter
Currently, TextMate. Started learning Emacs, though, and hope to get
proficient in that soon (via O'Reilly's "Learning GNU Emacs"). TextMate's
showing its age, for me at least, and I'm hopeful that Emacs will be more
powerful and faster.

~~~
astrec
I went from Emacs to Textmate and back again: Textmate showed much promise as
a modern programmable editor, but as it turns out I work several times faster
in Emacs. Time is money and all that.

------
kirubakaran
emacs <http://github.com/ki/my-dot-emacs/tree/master/dot-emacs.txt>

vim when necessary

~~~
icey
A thousand thank yous for having a .emacs file that has been commented so well
and is so easily understandable.

~~~
kirubakaran
You are most welcome and thanks a lot. Your comment made me so happy :-)

------
qhoxie
vim and gedit. gedit has come a long way with its plugins, definitely worth
checking out.

scribes is another one worth looking, but lack of tab support keeps me with
gedit.

~~~
nailer
Wow, I never expected as many people would be open minded towards gedit.
Sometimes in Unix, it's hard to convince anyone that something with easier,
more discoverable customization is better than vim.

Wish it had a tabbed terminal, and code folding though.

------
rsayers
Emacs

I do PHP professionally, mainly Ruby with my own projects, but I dabble with
lots of languages.

It's very powerful and any feature it doesn't have, I can add myself.
Yesterday I was prototyping something for work, I had my main php file open
along with the js and css files all in their own split window. More than one
co worker stopped in to see what editor I was using after noticing my screen.

The learning curve is very high, but print out a cheat sheet and keep it near
you, in less than a week I had the basic functions memorized and now rarely
need to look up a command (generally an obscure one). Once you get the hang of
it though, every other editor feels crippled, that's my experience at least.

------
rickharrison
I live and die via Coda (www.panic.com) Best editor I could ask for.

~~~
teej
I found that Coda was incredibly useful for PHP and flat HTML/CSS and hardly
useful for anything else.

~~~
unalone
It's much better for PHP and HTML/CSS. It's geared towards that. For other
languages it's just as powerful, but it doesn't have the same one-window-does-
everything aspect to it.

------
basil
You've listed scripting languages there which arguably means you don't
necessarily _need_ an IDE. By this I mean, there is no code-compile-test cycle
and you don't need an IDE to take care of your builds.

Possibly the most efficient way of coding would be in a shell with your choice
of Vim or Emacs. You have quick access to your choice of VCS, you can tail log
files, you can use your language's REPL and you can grep for things across
your whole project. As well you will have minimised your usage of the mouse
which is a great speed and flow inhibitor.

Take the time to learn either of the 2 great editors. The investment will most
certainly pay off.

------
vorador
Which editor we use doesn't matter, pick an editor an know it _well_

Btw, emacs has an excellent mode for editing python and I couldn't live
without its auto-indent feature

------
hs
vim, for everything

ed, when i really have to

------
mdolon
Notepad++ on Windows, gedit on Linux

~~~
KevBurnsJr
Notepad++ is relatively customizable once you get the hang of it.

This editor handles HTML and JS in PHP files very well. However, I've yet to
find an editor for Win XP that does a good job with ruby syntax highlighting
in erb files.

------
kzar
Emacs here, just watch some of the screencasts that are floating about if you
want to see what it can do.

------
gaius
Komodo (www.activestate.com)

~~~
GrandMasterBirt
It looks promising, I am going to try it out, see what features it has. Can
you give any more description on what you like about it and what language you
use it for?

EDIT: Maybe I am missing something, but this seems like a regular text editor
with no nifty features like code outline. What does it actually give you over
something like vim?

~~~
joshsharp
There is a paid Komodo IDE - I believe the free version is only a basic text
editor.

I use Komodo for Python, but find it hit and miss. Still looking for something
better.

~~~
gaius
There is a limit to what any editor can give you for any language that's not
amenable to static analysis.

------
talleyrand
I use Geany which is very nice indeed. I use it for PHP and javascript. When I
switched to Linux, I spent a long time looking for a replacement for my
beloved PSPad and this was it. It has solid support for gvfs, good syntax
highlighting, and a host of other features.

------
quellhorst
I recently switched to emacs from textmate/vim. I still use vim for small
configuration files.

There is a recent peepcode on emacs and rails. <http://peepcode.com>

------
hbien
Vim, TextMate, and XCode.

XCode for Objective-C/Cocoa, I've tried using TextMate but XCode is just so
damn easy to use for Cocoa projects.

Vim for lightweight stuff, like piping diffs into it for color or quick edits
on servers.

TextMate for web development with Python/HTML/CSS/JS.

During college, I read PragProg and thought I should just stick to Vim for
EVERYTHING, including command line key bindings. That changed real quick after
doing work outside of classes.

------
epicurus
As I'm only half a hacker and hate learning arbitrary stuff, I use nano.

I think the next leap forward with text-editors is when we get some sort of
interface with our eyes, or more importantly, our brain and the computer.
There was an link on HN a few weeks or so ago showing they could distinguish
letters from brain patterns. Surely this will make learning those vim/emacs
commands obsolete. I will just bide my time.

------
nreece
Notepad2 (<http://www.flos-freeware.ch/notepad2.html>) and Visual Studio .NET
2008

------
rantfoil
Textmate is absolutely essential for Ruby on Rails / Ruby development. What I
realize now is that it's a scriptable text editor that integrates super well
with everything you want to do with Rails. Basically anything you'd like to do
with Rails, someone's written a bundle for it.

This is particularly useful for testing using RSpec/Cucumber or your favorite
testing libs.

------
randallsquared
Smultron (on OS X) for GUI editing, where I typically want a bunch of files
open and their names visible at all times, and vim on the command line. On the
Mac, one nice thing is that most editors and (S)FTP clients support the ODB
Editor Suite, which means that such an editor and transfer agent can work
together seamlessly as though they're part of an IDE.

------
macco
I use gedit with a lot of plugins for all of my programming. I mainly programm
in Python. Only exception is when I play around with lisp, then I use Able.
Other interesting editors for linux that I know are Scribes (very well planed
and writen, with a unique concept, but only one developer, so development is
slow) and Komodo-Edit.

------
dmpayton
On my machine I use Komodo Edit; when I'm editing a file server-side I usually
use nano. _ducks_

~~~
Shamiq
_when I'm editing a file server-side I usually use nano._

I did that yesterday -- my sysadmin flipped.

------
sm13
Eclipse for PHP projects.

PSPad (a very nice and free editor) for Python PHP and general quick and dirty
editing.

FlashDevelop for ActionScript. This last one was truly a happy find, with all
the VS look and feel and a very comprehensive toolset, again for free.

------
iamelgringo
e text editor on XP. For a decent command line, I use Powershell inside of
Console2 and iPython.

If someone wanted to make a lot of money, they'd create a better wrapper for
cmd.exe or Powershell.

------
graemep
Kate and Geany, depending on whether I want the better editor, or need an IDE,
and Quanta for HTML. Kate is very configurable and (like any KDE app) can open
files over sftp which can be very handy.

------
r11t
I am suprised no one mentioned IPython? (<http://ipython.scipy.org/moin/>)
IPython + vim is a nice combo for Python programming.

------
olifante
Currently using TextMate and enjoying it. Used many editors, but the ones I
used the most were vi, vim, jEdit and emacs (ordered chronologically)

------
merrick33
Coda now, used to use textmate but found textwrangler had better grep features
and memory management when opening large files

------
walesmd
I use Intype for all of them - used to use Notepad++.

------
tolmasky
subethaedit <http://www.codingmonkeys.de/subethaedit/>

------
jamesbritt
gvim

------
GrandMasterBirt
I tried the Netbeans Ruby editor... and wow the difference between that and
anything for eclipse is major. Code completion is useful. It can figure out
what class I am referring to pretty well. Ctrl+click works nicely to see the
definition of a method (no matter where it is declared, and it finds them
quite well, shows list of choices if it is unclear).

Definitely worth a try for ruby.

------
drhowarddrfine
An IDE is not an editor. Don't be confused.

