top | item 413961

Ask HN: What editor do you use?

21 points| GrandMasterBirt | 17 years ago | reply

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?

I am most interested in Python, Ruby, and Javascript.

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.

57 comments

order
[+] andrewljohnson|17 years ago|reply
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|17 years ago|reply
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.

[+] bmj|17 years ago|reply
I do a lot of day job programming in ColdFusion (no, really), and CFEclipse does the best job with handling ColdFusion code, Javascript, HTML, and CSS in a single file (Komodo Edit, using PHP mode, does a pretty good job, too, but it's a bit slow). Initially, I didn't want to switch because many of the keybindings I was used to weren't there, but after spending some time configuring the IDE, I use it for everything (including editing SQL scripts).
[+] immad|17 years ago|reply
vim 7 has tabs the are sooo useful. :tabe filename to open something in a new tab and gt to flip between them
[+] dhotson|17 years ago|reply
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|17 years ago|reply
vim or emacs: pick one and get back to work. Editing text is a solved problem.
[+] Prrometheus|17 years ago|reply
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.
[+] shutter|17 years ago|reply
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|17 years ago|reply
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.
[+] qhoxie|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
I live and die via Coda (www.panic.com) Best editor I could ask for.
[+] teej|17 years ago|reply
I found that Coda was incredibly useful for PHP and flat HTML/CSS and hardly useful for anything else.
[+] basil|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
vim, for everything

ed, when i really have to

[+] mdolon|17 years ago|reply
Notepad++ on Windows, gedit on Linux
[+] KevBurnsJr|17 years ago|reply
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|17 years ago|reply
Emacs here, just watch some of the screencasts that are floating about if you want to see what it can do.
[+] gaius|17 years ago|reply
Komodo (www.activestate.com)
[+] alanb|17 years ago|reply
The thing I like about Komodo is the graphical debugger which even works for threaded Python. As an editor, it is okay and has the useful feature that it's interface is very similar on Windows, Mac, and Linux (it's built using Mozilla's XUL).
[+] GrandMasterBirt|17 years ago|reply
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?

[+] talleyrand|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
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|17 years ago|reply
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.

[+] rantfoil|17 years ago|reply
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.