Hacker News new | comments | ask | show | jobs | submit login
Poll: Which text editor do you use daily?
151 points by methoddk on Mar 17, 2012 | hide | past | web | favorite | 200 comments
Do you use an IDE, vim, emacs, gasp maybe even Notepad? I'm partial to vim, but wondering what everyone else uses on a daily basis, maybe even comment why? Ease of use? Syntax completion? etc...
1366 points
Sublime Text 2
709 points
536 points
271 points
243 points
177 points
Visual Studio
148 points
134 points
114 points
104 points
79 points
46 points
42 points
Komodo Edit
34 points
31 points
31 points

Vim for whenever I'm running something headless or I'm ssh'ed into a server somewhere.

Eclipse for any project that's an excessive amount of Java, which at this point is only Android apps.

XCode for any project that's an excessive amount of Objective-C, so just iOS or OS X apps.

Visual Studio / MonoDevelop for anything that's going to be published to a Microsoft environment (Windows, Windows Phone, Xbox, or Unity cross-platform development).

Sublime Text 2 with Vintage mode for everything else.

I'd love to just use one editor for everything, but the language IDEs (Eclipse, XCode, Visual Studio) are too good in terms of intellisense and platform integration to pass up for their respective languages. It's a pain in the ass juggling contexts, especially with vastly different keybinds in various editors, but it's definitely worth the pain when you're on a roll with something.

> I'd love to just use one editor for everything, but the language IDEs (Eclipse, XCode, Visual Studio) are too good in terms of intellisense and platform integration to pass up for their respective languages. It's a pain in the ass juggling contexts, especially with vastly different keybinds in various editors, but it's definitely worth the pain when you're on a roll with something.

That. The religious text-editor wars really hurt the discussion when language-IDE-platform combinations exist that really boost productivity and maintainability.

In the same way, though, it makes little sense coding Python in Visual Studio.

Makes me wonder if all the "My editor simply is best" people can code in more than a language and a half.

I'm a vim user.

I feel like I'm only able to "half" code in Obj C or Java as I've only really done so in Eclipse or Xcode.

Meanwhile I feel pretty dang confident in my C ability because I have and always will do it in vim.

My comfort level in a language increases if I don't use an IDE.

Usually, it's the "IDE-bound" guys who can't code in more than one language.

I use Emacs simply because it is so adaptable, regardless of my current environment/language/task. Couldn't figure out how to beat Xcode for iOS programming yet, tho

> it makes little sense coding Python in Visual Studio

There's a VS plugin for Python now. It still feels heavy compared to other editors but its atuocompletion is actually pretty decent.


Try eclim for Eclipse/Java/Vim integration. I run in the headed Eclipse mode, and use the Eclipse UI for reading errors, debugging, and to run/terminate processes, and use vim for writing code. eclim provides autocomplete, lots of useful macros (:JavaImportMissing) and so on, and CtrlP provides superb file navigation

I'm the same way, I really love vim for python, ruby, html.

But I've been eyeing up Sublime Text 2... It looks nice

What sold me on ST2 was the Package Control (http://wbond.net/sublime_packages/package_control) and the fact it works on my Linux box and Macbook. Generally ST2, with Aquamacs + SLIME for Clojure and Common Lisp and vim on console because my fingers are hard-wired to it (I've been using it for almost a decade).

I was pretty excited about sublime text 2, and I use it on my Mac and windows box. But I can't use it on our work cluster due to it not supporting our version of rhel (5 I think)

Gedit is the one I use most. Really, why would I need more for daily use? I wouldn't bother pasting stuff or taking simple notes with Vim, Emacs or even the specialized apps for that. I can read text files from the file browser with that, and for my other viewing need I have less.

When I program, it's usually Emacs, otherwise Eclipse for Java.

I use Notepad for this same reason. It's so easy to just hit win -> r - > 'notepad' on my XP laptop at work. Anything I need a text editor for, Notepad fits the bill. When it comes time to start coding, then I move to an IDE.

No need to get fancy.

I just hit win -> r -> 'vim' when I'm using Windows.

I use IntelliJ for java/groovy/JavaScript. AppCode for Objective C. RubyMine for Ruby. Basically JetBrains products when I can. I have all the key bindings set consistently across all the IDEs.

I think JetBrains makes the best editor on the planet if you really learn all the features avail. but JetBrains IDEs don't support quick editing of arbitrary files, so I use sublime for those. Again, I set up the sublime key bindings to be consistent with the JetBrains products.

Sublime is very sweet. Not quite up to the JetBrains standards, but it's faster and you don't have to set up a project.

And of course there is vim when I need it

I'm a Jetbrains convert too. Editing on a structural level rather than a purely textual level is so much more efficient and having really strong refactoring tools has changed the way I code. I just wish it was easier to edit single files outside a project.

At least on OS X you can set up an "idea" command for opening arbitrary files. Only local files though. Check the File menu.

I use gEdit for both text and programming for a couple of languages.

The Cobalt theme is the best dark theme\colorlayout I've ever experienced, and I'm yet to find any others which I find as pleasant to the eyes while simultaneously allowing me (I am colorblind) to pick out the various things gedit highlight.

If I'm not going with black-on-white I'll have to roll my own color layout based on Cobolt whenever I use anything else.

I was helping my friend edit his website yesterday. He's an illustrator/character designer and needed a text editor on Tiger (old laptop) for editing html/css/etc.

We tried very hard to find an editor that wasn't vim. I looked around.. textmate sounded nice but it was only free for 30 days. Lots of other apps simply didn't run on Tiger.

So we ended up downloading macvim. He picked it up and was able to be productive the same night with very little coaching. Coincidentally, he has wrist pain from mouse abuse so having a keyboard-centric interface is incredibly helpful.

I'm a vim expert and my gut feeling to avoid vim ended up being completely wrong: he had no problem understanding it and was almost immediately productive.

Thank you macvim developers for not forgetting about the little guys with old OSes!

Your editor is such a central part of the workflow that I really can't see how you can choose something else if the one you like better costs just 50$. You will be using it for countless hours, so if you really liked TextMate more then vim I'd say go and buy it.

That being said, I use Vim, and I do have licensed TextMate. In fact we have bought 6 licenses for TextMate but not using them as we all switched back to vim.

I think you might have overlooked this bit:

  He's an illustrator/character designer and needed a text editor
  on Tiger (old laptop) for editing html/css/etc.
It doesn't sound like it's a "central part" of his workflow, so that's why he didn't want to buy an editor.

well, a designer that needs to edit html/css sound like a part of a full-design-stack solution to me. which means he does edit it for a non trivial amount of time, so something like TextMate or Coda might fit the bill pretty well. If you are doing anything in a professional capacity (i.e. getting payed for it) then even a very slight improvement in productivity will pay for it self almost immediately when we are talking about a 50$ price tag.

Vim for almost all coding (except for Java: I still use vim for rolling out tiny programs but since eclim, the Vim plugin for eclipse is not very good, I am forced to use eclipse). I use emacs in vim-mode as a GTD planner, mainly because org-mode is an incredibly useful planning tool that I am able to use on any machine that is linked to my dropbox account as long as I know the markup.

Forgot to add: One another situation where I would use emacs is if ever I really got into R. ess (emacs speaks statistics) is quite good compared to vim equivalents.

I have wondered more than a few times, what it would take to port org-mode to Vim ...

I note that someone gave up on the slime port of vim for various reasons ...

AFAIK Slimv is being actively developed and quite usable (although I haven't used it myself): http://www.vim.org/scripts/script.php?script_id=2531

Also wrt org-mode: if one called out to Emacs from Vim for exporting to different formats it shouldn't be too much work.

No mention of jEdit makes me sad. It is a cross-platform, highly versatile and FOSS editor with tons of great plugins (for example a minimap, XML syntax checking or auto-completion).


I use Vim these days but I've got a lot of fond memories of jEdit, it's a fantastic tool.

jedit here (until someday emacs : "vim scripting" < java < (e)lisp ?)

ed, acme ( http://acme.cat-v.org ), vi.

For quick one-off edits, still nothing can beat ed.

Acme is great for working with many files.

And vi is the last resort for environments where acme is not practical.

Of course, this days real men use sam, but I'm too spoiled to give up Acme and mouse chording.

I remember there's a chording patch for sam.

I know there have been several chording patches for sam, but I don't think any of them work reliably.

I use Emacs because it does everything, most of it well, and is absurdly easy to extend. I've found myself missing features several times; each time, it took maybe three or four lines of code and maybe ten minutes to add. Even adding basic support for a new language turned out to be easy, so Emacs is now the only editor that supports my own language at all :).

Additionally, Emacs has the best UX of any program I've ever used. It is, by far, the most unified and consistent program I've seen--the same commands I use for getting around a code buffer are used to get around directory listings, documentation, compiler output, shell output and so on. Since everything, including the UI, is basically text,I don't have to treat the content much differently from the editor. This makes doing all sorts of sometimes complicated tasks easy.

On top of this is has some incredibly awesome features.

I am literally addicted to TRAMP--if I want to open a remote file, I just enter the remote path as if it was a normal file path and it just works. I can also open remote shell buffers just as easily. This makes working on several different servers at a time just as easy as working on local files exclusively; people watching me often don't even realize that some of the stuff I'm doing is remote.

Org-mode is really great. For a simple, easy to learn outline editor it's extremely flexible. Using the same tool for notes, todos and even presentations is great.

I also use Emacs to manage many shells, the way others use GNU Screen. This integrates managing a bunch of potentially remote shells into my workflow really well.

It also has some really brilliant language-specific modes like AucTeX and JS-2. The normal Haskell (with some potential additions like Scion and ghc-mod, although I still haven't tried these) is also great.

I even use it for Jabber and IRC. This makes it easier to code and chat at the same time and gives me access to a lot of Emacs's great features. A very practical example is the TeX input mode. If I want to use random unicode symbols, I can enable an input mode that automatically translates \lambda to λ and so on. This is also really useful for making some of my Haskell programs prettier :).

So really, the old saw about Emacs being an operating system is basically true--it can even view images and PDFs! Really, the main thing I do outside of Emacs is browse the internet, and I could even do that in there. However, the rest of the saying (that it just needs a decent text editor) is less true; while the default bindings are perhaps less powerful than Vi's, they're still extremely good and make for a much better editor than any I've used, including those that attempt to emulate Emacs bindings, which inevitably miss a good portion of the movement and editing commands I use regularly.

So yeah, Emacs is like magic.

EDIT: Oh yeah, with Emacs server and a relatively nice laptop, opening a new Emacs window literally takes a fraction of a second. In fact the minimal fade-in animation I have takes longer than actually launching it.

What do you use for browsing code in a bunch of files in different directories (if anything)?

I use Emacs 99% of the time, but when I need to look through a codebase I'm not familiar with I use TextMate for its project panel.

I usually use a bunch of dired buffers. Dired is actually really nice--it's basically my main file manager these days. You can actually open several nested directories in a single dired buffer using i and you can open directories/files in a different window (in the Emacs sense) using o.

Another really useful trick is M-x find-dired and M-x find-grep-dired, which let you get a dired listing of the result of a find command. This is usually good enough for browsing through even relatively large code bases.

You can also use etags to get "jump to definition" commands for your various functions. Just put the TAGS file in the root of your directory.

Also, ido-mode really helps with handling a bunch of different buffers or files. And, since I have a large external monitor at work, I can have one or two small dired windows (again in the Emacs sense) open most of the time.

I use ido-mode for file browsing, and semantic for code browsing. etags will get you quite far, semantic-symref gets you the rest of the way (though you can use cscope instead, through xcscope.el). ECB can be helpful but I don't find I need it much anymore, and it's pretty out of date.

I use ido and imenu to jump around, but this is for when you already know what's where and how it all fits together.

What about when you download some library from Github and want to quickly get an idea of how it all works?

This may not be exactly what you're looking for, but I generally resort back to good old 'git grep / grep' when looking through unfamiliar github projects. running grep from emacs links all the matches to their corresponding files, so you can navigate the results and easily follow the code execution by jumping to each result.

I use github, and mostly the t browser shortcut

(yo hassy)

There is speedbar, which can be tailored to look a lot like TextMate's panel. Personally, I use the command lines + vim if I'm mainly reading/browsing through code. I even use vim for minor edits, even though I use Emacs as my main editing environment.

I use a combination of tag search, ack, and glean (https://github.com/silentbicycle/glean), a search tool I've been working on. All three have good Emacs integration.

Emacs Code Browser ( http://ecb.sourceforge.net/ ) is great for this.

cscope + ascope.el

It sounds like you have done a lot of great customizations to your emacs. Care to share your .emacs configuration?

Heh, my .emacs file is a horrible morass of random snippets, custom functions and ugly hacks. One of these days, I'm going to extract the useful bits and make them readable, but for now it just isn't worth it.

So, be warned: reading my .emacs file is probably a path to madness. Also, I rely on a fairly large collection of external .el files, some of which I either wrote or modified myself, so some of it won't work out of the box.

With that disclaimer out of the way, you can read it here: http://inst.eecs.berkeley.edu/~tikhon/.emacs.html. I colored it with M-x htmlfontify-buffer, which is an awesome command :). If you want the raw version, just drop the .html from the end.

EDIT: Also, note that this is for Emacs 23; some of it (like the color theme stuff) is useless on Emacs 24, but I haven't moved over yet. I'm too spoiled by yum to build my programs from source :).

But that's a tiny Emacs config! :)

I found it really helpful to break my .emacs up into several files. Aside from trying to load .emacs, it will also try .emacs.d/init.el -- mine sets up the load path and then loads .emacs.d/my-options.el, etc. That way, the sprawling growth stays compartmentalized.

No guarantees this will work on xemacs, older versions of GNU emacs, or whatever, but here's what I use (some of which is adapted from the excellent Emacs wiki (http://emacswiki.org):

    (push "~/.emacs.d/" load-path)          ; my init files
    (push "~/.emacs.d/elisp/" load-path)    ; other elisp pkgs
    ; byte-compile files in ~/.emacs.d/ whenever we change them
     (defun byte-compile-init-files ()
       (when (and
              (string-match "/\.emacs.d/" buffer-file-name)
              (string-match "\.el" buffer-file-name))
         (when (file-exists-p (concat buffer-file-name ".elc"))
           (delete-file (concat buffer-file-name ".elc")))
         (byte-compile-file buffer-file-name)
         (if (get-buffer (concat (buffer-name) "c")) ;.el -> .elc
             (kill-buffer (concat (buffer-name) "c")))))
    (add-hook 'after-save-hook 'byte-compile-init-files)
    ; don't disable commands or mess with my init, grr grr
    (setq disabled-command-function 'nil)
    (defun my-load-wrap (fname)
      "Compile stuff if the .el file is newer than the .elc, and load."
      (let* ((fpath "~/.emacs.d/")
             (fn (concat fpath fname ".el")))
        (if (not (file-readable-p fn)) 
            (message (concat "File " fname " does not exist!")))
        (if (or 
             (not (file-readable-p (concat fn "c")))
             (newer-file (file-last-mod-time fn)              ;some .el
                         (file-last-mod-time (concat fn "c"))))     ;compiled
            (byte-compile-file fn t)     ;compile and load
            (load fn t))))               ;load with failsafe
    (my-load-wrap "my-options")                   ; general options
    (my-load-wrap "my-functions")                 ; my misc functions
    (my-load-wrap "my-server")                    ; emacs-server stuff
    (my-load-wrap "my-calendar")                  ; cal/diary options
    (my-load-wrap "my-bindings")                  ; and lots of 'em
    (my-load-wrap "my-packages")                  ; misc packages
    (my-load-wrap "my-text")                      ; text mode hooks
    (my-load-wrap "my-programming")               ; python, c, lisp, ocmal, etc
    (my-load-wrap "my-web")                       ; for browsing w/ w3m
    (my-load-wrap "my-irc")                       ; rcirc stuff
    (my-load-wrap "my-skel")                      ; skeletons, boo

    ; load my-aesthetic last, so if there's an error the
    ; faces don't get set, and to ensure faces from all packages exist
    (my-load-wrap "my-aesthetic")                 ; faces, interface stuff

On windows, it used to be Notepad++ but since I moved to mac, I've been using textmate. I wish there was Notepad++ for mac.

Check out TextWrangler. Pretty similar

ST2 gets you most of the missing features, like bracket matching, sane indenting etc.

Each day, you arrive to work, sit in a chair, and focus on Python programming. After five years, you're a pretty damned experienced Python developer: you've become wiser, more efficient, and generally more productive.

But ... you're still no better at chair sitting. You've done just as much chair sitting as you have programming, but you've barely progressed in chair sitting.

But that's different, you say - programming languages are open and complex, with many libraries to explore, blog posts and stack exchange threads to read, and many fun side projects to fiddle with myself.

Heh, that's the key. A programming language doesn't limit your growth, your self-betterment. A chair does limit your growth: it's a simple tool, and there's not much improving in chair sitting after you've fiddled with the levers for five minutes.

I use vim because it's a programing language, not a chair. I consistently learn better ways of editing text in vim.

I'm not advocating vim here, so much as I am advocating to thoughtfully examine an activity you do often (text editing) and then looking at the tool you're using (text editor) and asking: am I constantly learning better ways to accomplish my goals?

I use emacs because it's available everywhere, and can do everything I want. When I decided that I needed to learn something ubiquitous, i started with gvim. But it wasn't for me, so I went with emacs instead. It doesn't matter what you use, as long as you can do what you want. I think a conscious choice of editor is a fairly good indicator of a good programmer, regardless of the actual choice.

But you'd be insane not to use emacs.

> So long as it can do what you want.

That is kind of the thing about Emacs and Vim, right? Vim is a text editor. Emacs is... well, Emacs is a text editor, too. And then an outliner, a news reader, a file manager, a source control interface, a psychiatrist, tetris, a mail client, an IM client and pretty much anything that can be represented in text and simple images.

I used to use Vim for a year or two. Then Emacs, and I haven't looked back. Actually, that is not true. I have looked back quite a bit, since Vim is hands down a better text editor than Emacs. But I can't go back to IDEs really and Vim just sucks as a development environment if you can't combine it with a Unix command line. Emacs is the only great platform agnostic development environment I know, even though it might not be the best text editor out there.

And yeah, there is Evil-mode. It is quite lovely, actually. But my brain just can't cope with dealing with Emacs and Vim simultaneously.

So, I totally agree, you'd be insane not to use Emacs, really.

"Vim just sucks as a development environment if you can't combine it with a Unix command line."

Where can you not combine Vim with a Unix[-like] command line?

I use WinXP at work, and vim works quite nicely in a cygwin terminal.

Visual Studio based projects don't play nice with the command line. Linking MFC without VS is a fast path to madness.

I'm currently using Xcode for everything iOS / OSX (most of my work actually) and am going back and forth between Vim and Sublime for everything else. I've been using Vim for years and Sublime really shines in some regards. However, it lacks some plugins that I really like about Vim (like EasyMotion https://github.com/Lokaltog/vim-easymotion) which is why I'm deciding on a project basis which editor to use. (Also, I really like to be able to browse for files without having to reach for the mouse). Btw. In that regard, I find it fantastic that the Vim bindings start to become some sort of unofficial text editor control standard; more and more editors are adding Vim bindings (like http://www.jetbrains.com/objc/ it has a Vim Plugin too).

I think vintage mode in sublime text 2 offers vim like keybindings as well.

As for browsing for files using the keyboard, I'm a huge fan of Command-T. https://github.com/wincent/Command-T

I mostly use Emacs for development. Vim for small edits on the console, sometimes I open gEdit to read plain text files when I'm not coding. On Windows (under Virtualbox or on remote servers) I tend to use Noteapad++. I don't use much Eclipse these days except for a few touches to an Android project.

Kate. Strange it's not on the list. Anyone else using it?

Yup, all the time. It has some nice plugins and the settings are simple enough. Terminal panel, several files open with splitted screen, it has everything!

Yes, for everything except editing word documents. :)

MacVim with the Janus additions.


I always catch myself trying to use Vim bindings in non-Vim environments. I would pay serious money for software that would allow me to work like that in every Max OS textbox.

I use Quickcursor -- you just setup a global hotkey and it will open the contents of any text widget in the editor of your choice.


Well, there's this


if you're using Firefox.

FYI, you can set bash to vi mode with `set keymap vi && set -o vi`.

I agree. Emacs type key bindings are prevalent in osx, sad to see vim missing. Although I was so happy to learn c-d was delete in cocoa boxes, especially since that is easier to type than fn-delete.

I mostly use emacs these days, but still use vim too. To keep my brain from scrambling, I changed emacs movement keys to match vim (ie c-h, c-j, c-k, c-m).

Emacs: familiar, useful, widely preinstalled, and uniform across Linux, Windows, and Unix. Notepad++: minimal without being irritatingly underpowered like its ++-less namesake, plus Scintilla is nice.

No Netbeans???? ++1 for Netbeans!

I use nano, 99% of the time. I gave details last time a post like this came up: http://news.ycombinator.com/item?id=1376321

I use a "text editor" and I also use a "programming editor." The two are separate programs for different tasks. The "text editor" is for editing (English) text, spell checking, and on rare occasion adding some formatting. The programming editor is for writing code. Sometimes, I open small snippets of source code with the text editor.

Text Editors:

  well, right now I am typing into a textbox in firefox
  Mac OS X:  TextEdit
  Linux:  Gedit or whatever comes with the distro
  Windows:  WordPad
Programming Editor:


I'm on Windows. I use Notepad++ virtually everyday. I only use Visual Studio for my C# projects, and other than that I do everything in Notepad++. Eclipse is for my only Java project.

I use XCode for iOS development and Vim for everything else. Tried to use Vim for iOS development as well, but XCode has incomparable integration of code completion, compiler, etc. (Even though it is slow and buggy.)

I am open to using other editors/IDE if they came with better code completion and integration for Web related technologies, but I have not found one that outweighs the benefit of using Vim.

I'm surprised no-one mentioned Source Insight - it's by far the best editor I've used for truly large C/C++ code-bases - doing symbol lookups almost instantly on a source tree eating up several GBs on the drive was extremely impressive when I was introduced to the software in 2004 (admittedly, the rest of the world has caught up on this one), but what made it great is the pervasiveness of using that capability - there is a separate window which shows the context of the symbol your cursor is currently on, instantly updating when the cursor moves, giving you for every symbol its context at a glance. That alone is so useful I miss it still (MSVC has had the almost equivalent 'code definition' pane for a while, but it's so slow to update it's still effectively useless).

Also, to this day it seems like the only code editor that I've seen which doesn't use monospaced fonts, and better yet, utilizes that properly (for example, parentheses vary slightly in size according to nesting level, so it's easy to see at a glance which parentheses match).

1 nano in ssh terminals

2 Eclipse for development

3 Notepad++ For quick changes to codes, write SQL queries and standard tool for storing temporary text.

Emacs and nvi -- so emacs and "other". If I cared a bit more, I'd say the common notion vim=="everything vi" pisses me off. Default installs of vim w/ their (to my sensibilities) hideous highlighting and bracket-jumping cursor are off-putting. I want my (n)vi to just stay out of the way.

Vim because it's lightweight, fast, and the vast plugins that are available makes it almost like an IDE

Eclipse has so many useful features for Java, and once you get used to it it's really not as bad as some people say it is.

For any other language I just use gedit where I add line numbers, automatic indentation, current line highlighting, syntax highlighting and word completion.

Started in TextWrangler/BBEdit, saw the light and moved to TextMate, ended up switching the default application for about twenty filetypes to open in TextMate, and lived merrily for about four years. I've always been scared of Vim, so a few months ago I decided to learn it but never used it full-time (quite handy for remote editing, though).

I'm currently in the transition to Sublime Text 2 after it being recommended to me at a hackathon, but there are still a handful of things (markdown editing, better find/replace dialog) in TextMate that keep it in my dock. I still use TextMate for writing papers or letters out of habit (though subl's distraction-free editing is quite tempting).

Every day for twenty years. Emacs. At one point I was so desperate to run Emacs on a Macintosh that I bought and installed MachTen. If you don't remember MachTen, consider yourself lucky.

Heh, I remember MachTen. Yes, I used it for the same reason.

And I've been using Emacs in various of its incarnations since about 1978. (The original ITS Emacs, followed by Zmacs, MINCE, and then Lucid Emacs/XEmacs, the latter still being my preferred variant.)

I use VIM almost exclusively at work because I do most of my development on a virtual SUSE machine.

I do enjoy using Sublime 2 with vintage mode for stuff when I can. I love the accessibility of ctrl+p <filename> to open files quickly.

The development environment I still dream of is to somehow merge the linux terminal with something like Sublime 2. If I could have a separate Sublime tab open that I could use as a terminal, I would easily pay for that.

Can one of you guys who is a lot smarter than me go ahead and build that? Thanks.

I'm trying to do exactly that (embed a terminal, not make you pay for it) with https://github.com/wuub/SublimePTY, but the progress has slowed down to a stop lately because of humongous pileup at work.

You can also try SublimeREPL [https://github.com/wuub/SublimeREPL] / Shell for now, but it's good only for very basic stuff as SublimeREPL does not aim to be a terminal emulator at all.

Wow, looks like 50% use vim/emacs daily. As a regular Textmate user, I don't have any issues with my workflow, but I have to ask. I use vim/emacs when I do devops, but I don't think I'd want it to be my regular editor. Might be a matter of preference, but just to ask...

What're the things I'm missing by not using vim/emacs when I use Textmate? I'd be most helpful if someone could frame an answer in the form of "with Textmate you do..., and then with vim/emacs it's just..."

I guess Emacs and Vim get so many mentiones partly because we all want to rationalize the effort we put in to learn and maintain them.

Text editors that cost less effort have probably a less profound impact on our lives and thus deserve less discussion.

With Textmate you write in Markdown. In Emacs you have org-mode, which is mind-boggingly more powerful. Textmate lacked a code browser last time I checked (not entirely sure there). It does not have Magit or AucTex, either.

Last, and certainly not least, simple text navigation and manipulation in Textmate is way inferior to Emacs or particularly Vim. As in: no macros, no incremental regex search and replace, and just a lot less movement and editing commands. Also, a lot less configurable.

Well, and Textmate is Mac only of course.

I think the impact of a text editor depends on your daily workflow. I do a lot of system administration and use emacs nearly daily to edit configuration files and write shell scripts. Since almost everything I do involves terminal sessions, a GUI-driven editor is simply unfeasible. I simply could not do my job as efficiently without being a knowledgeable emacs (or vi) user.


SciTE, but since it's not on the list, I voted Notepad++ (which is the same underlying editor with uglier, more bloated chrome on top).

Second choice: Visual Studio 2010 with the minimap-in-scrollbar extension - still better than the one in Sublime Text 2 (which doesn't show the entire document, wtf?, and doesn't show edited lines). Also, the "find in files" implementation in VS2010 is better than Sublime Text's when you have hundreds, not a handful of hits.

Interesting. I have had VS 2010 lock up several times attempting to find in files. Searching the entire dojo source (7k some files) is very fast in Sublime Text 2. Though it is not a very fair comparison, my home PC has a solid state drive, while my work PC has a 7200RPM.

Well, I will take a few hundreds MB Sublime text editor (with tons of plugins) over the few GB VS2010 IDE anyday.

Right. Because the size of the editor directly correlates with productivity.

Used TextMate for a good 2 years, Notepad++ for many years before that. Then I switched to Sublime Text 2 in January and haven't looked back.

It's fast, feature rich, supports almost any language via tmbundles, and fixes many quirks that TM had. It just needs a better bundle/plugin manager to be perfect.

I code in javascript/coffeescript 90% of the time, but regardless of editor, Zen HTML/CSS is of utmost importance - can't live without it.

Why isn't TextMate on the list?


I'm surprised that more people don't mention bash tools, or gnu if that is the proper name for them.

I edit more text files using a combination of ack-grep, cat, sed and pipes than my primary editor (Vim). I had a hard time understanding how one of my coworkers doesn't use a project-wide find (ack-grep, grep, find, &etc).

One of my coworkers uses github's search for our repo. Bizarre, but works really well for him.

Using vim for the last 10 years or so.

Had switched to TextMate for about a year in 2005 when started doing Rails, but went back to vim quickly afterwards.

Tried to switch to sublime2 lately, but its far far from being ready. may be one day.

Vim is old. Way too old I'd say. And has absolutely hideous extension language, horrible internal API and looks like crap. Sadly nothing still comes close to replace it for me.

What makes you say Sublime Text 2 is far from being ready? It's relatively stable for a beta product, has an impressive list of features and is highly extensible; not to mention it's being actively developed, unlike some other editors. Just curious how you reached the conclusion that is isn't "ready".

TextWrangler (BBEdit when my company paid for it)

I use Qt Creator for C++ development (any, I don't really do Qt development). Really a great editor; really snappy and I think the best C++ support (as seen in auto completion and other stuff) I know in any IDE / editor.

I have used Xcode before but the memory usage became so high in recent versions (>1.5GB or more) that it is mostly unusable for me now.

At the moment, vim is a runaway victor as far as popularity. As I expected it to be. Insanely simple and so many great plugins.

Seems like a few people like Sublime Text 2

Any particular reasons why? I currently use MacVim with solarize dark color palette.

Most of my decisions are pretty forced. I don't use Eclipse or Gedit because they were crashing my computer. I don't want to spend time learning vim, and am skeptical of it because I read bad things about modes in UI books.

For me sublime text 2 just got the basics right: black background, tabs, text completion, no crashes. The only feature I really appreciate that seems unusual are the pinstripes denoting tab characters

I don't have a problem with Vim's main modes, because I always know what mode I am in. Not only is the name of the current mode always in the bottom-left of the window, the cursor also looks different depending on whether I am Insert mode (vertical line) or Normal mode (rectangle). I suspect that your UI books warned against modes where the user might forget what mode they are in.

However, you also go into another mode when you enter the beginning of a multi-key shortcut (such as 'ma' to mark the current location with label 'a'). This is indicated at the bottom-right of the window by showing the keys you have typed so far (such as 'm'). Since that is the only indicator, sometimes I have accidentally forgotten I was in this mode. So that can be a problem. But it's easy to undo mistakes - just press 'u' in Normal mode, or Ctrl-O if the effect was moving the cursor. And if I know I'm in some weird mode and just want to get out, I can just mash Esc, and that always brings me safely back to Normal mode.

Of course, the reason Vim has modes in the first place is to give modifier-key-less ways to access a lot of functionality. I think the modes are overall a good thing. It's very nice to be able to edit and rearrange text with so few keystrokes and no need to move your hand to the mouse.

But configuring Vim so it works well can be a large pain. I've been using public computers to program a lot recently, so I've been using Sublime Text 2 on those, because of its good defaults and cross-platform nature. I hope to soon upload my Vim configuration files online so I can use it on other computers, but first I have a bunch of bugs in my configuration I have to fix. That's where I envy Emacs for having a good configuration language.

"I read bad things about modes in UI books."

This makes me skeptical of UI books.

It took me five years (and counting) to get Vim to a place where I'm happy with how it looks and functions. ST2 gives me that out-of-the-box, and it's improving constantly.

I switched from Vim to ST2 two days ago, and this was precisely why.

At the risk of repeating what you wrote above: strictly speaking, Sublime Text 2 doesn't do anything you couldn't do with Vim, either by installing multiple plugins or writing your own plugin.

The difference is that most of the plugins I installed in Vim are features which just work in ST2. I can't _believe_ I went this long without a robust "find in files" or a project system.

Also, in the ~10 or so years I've used Vim, I've _never_ learned its specialized scripting language. Every time I've tried, I've given up in frustration. You can use another language but you can never truly escape vimscript. ST2 plugins are written in Python.

It's tastefully designed in every sense, from the look to the feature set to the extensibility.

The one thing I'm not keen on is its reuse of actual TextMate bundles. I definitely understand why it was done, but some of the bundles seem a bit legacy and they all use gnarly XML.

Before Sublime I was using emacs. Sublime Text 2 is really well done. You have to try it to understand. If you want a characterization, I would call it the balsamiq of text editors.

It's fast and works. Since discovering it two years ago I still haven't found a reason to switch.

In addition it is very actively developed and updates flow in often. Also has quite a large number of useful plugins.

I was a MacVim user before switching to ST2.

It looks nice (shouldn't matter, I guess, but it does to me a bit). For example, scrolling is much smoother and easier for my eyes to track and keep my place -- MacVim only lets you scroll complete line by complete line which is kind of jumpy.

The folder hierarchy in the sidebar is better integrated. Open a new ST2 window, go Project -> Add Folder to Project, and then all its subfolders and files will be easily browseable. It's not always necessary, though, because the fuzzy file finder search is so good. (Like Command T, but built-in).

Multiple cursors. I use this more than I would have thought. You can command-click and get multiple cursors, or you can highlight a word and command-d to incrementally highlight each further instance. Then, you can type and it goes to all the cursors simultaneously. If you, say, shift-opt-left arrow, it will highlight the word to the left, and then you can copy, and it will copy every word but associated to its particular cursor, so you can then hit command-right arrow to go to the end of the line, and then paste each of the copied words.

So, say, I want three similar json objects, one related to cats, one dogs, and one birds. (This is a contrived example, and probably not the best way to do it, but just to demonstrate the power here.)

Now what I'd do is I'd write on three separate lines, "cat", "dog", and "bird". Then, I'd highlight each of them to get multiple cursors, hit cmd-c so I have "cat", "dog", and "bird" copied for each cursor, and then just write the json object and all three would be done at the same time. If I wanted a variable to be called "myAnimal", then I could paste (so, I'd get the three animals). Opt-shift-left arrow to highlight them, command-p (which brings up the fuzzy-finder for all of sublime's functionality), type "capt", which will bring up "Capitalize", hit enter to do so. (Now I have "Cat", "Dog", and "Bird"). Then opt-left arrow to go to the beginning of the word, and type "my", and now I have "myCat", "myDog", and "myBird".

I'm not sure how well that came across, but basically multiple cursors is a killer feature that I didn't have in Vim. Couple that with a powerful macro system of recording keystrokes, and then using those macros with the multiple cursors, you can do a lot of editing fast.

The only reason I don't use ST2 is because it isn't nearly as good as Vim at indenting and highlighting the languages I use. Another reason would be that I can't use it in a terminal and would have to switch to another editor.

But the rest of ST2 is utterly fantastic. In particular, using Python as the extension language. Elisp is okay, but VimL is terrible. ST2 is the only popular editor I'm aware of that has a real programming language as its extension language and not a editor-specific language.

For me the most important feature is the quick file finder / browser / preview whatever that is called (cmd/ctrl+P), along with the ability to save folders as projects. Everything else is really nice too, but that is definitely the feature that sold it for me.

Sublime is great in general. One area it lacks is good auto-formatting support (it has the feature, but it generally fails) I use this feature all the time in JetBrains IDEs and it's tough to live w/out once you are used to it.

Where is gedit?

I use Windows, so I am using IDM's UEStudio, which isn't on the list. (There's a less feature rich version called UltraEdit, too.) It's the only windows text editor I've found that has features akin to BBEdit (which I haven't used since the old dot-com days back in 2000.)

where's notepad/wordpad? I use it all the time on windows servers that dont have notepad++ installed.

Vim when I want to quickly edit a file

Geany for writing longer scripts

RubyMine for Ruby development (mostly Chef cookbooks these days)

Why did you not split up the IDE part ? To Sublime Text 2 / Textmate / Eclipse / Visual Studio etc.

I've added those now, thanks for the tip.

Aptana (Eclipse-based) for development. OmmWriter for creative writing. TextEdit for quick notes.

As a guy who have been using VIM on linux for several years I say this:

Check out Komodo Edit! It has made a huge leap since it started.

It is an awesome editor for dynamic languages - particularly Python, JS, HTML, etc...

It simply does so much right, so do your self a favor and give it a try.

On my personal projects (osx, linux): nano as a quick and dirty editor, eclipse for java and scala, been messing with vim but not really proficient yet.

At work (microsoft): visual studio, notepad++, notepad (on some servers that have nothing else installed.)

I just fell in love with Vim after years of TextMate (and BBEdit before and Dreamweaver 3 first).

It's powerful, smartly designed, elegant in a weird way… and it works exactly the same on my Ubuntu box at home, on the VPNs I work with and on my Mac at work.

Why wouldn't the same program work the same way on ubuntu, on your VPNs (I'm assuming you mean the machines you connect over a VPN to) and your mac?

Sorry, I mistyped VPS.

There are many reasons a program wouldn't work across systems. The primary would be that it is a Mac OS X or Windows-only app (TextMate) or that it needs a GUI, or that it makes too many assumptions about the platform it is running on. Vim works on many (if not all) systems, it can be run with or without a GUI without losing or breaking anything, etc. Obviously, Emacs has all the same pros but I liked Vim more.

So Vim for me.

Crimson Editor.

It has a very fast startup time, even on older machines. Also, its syntax highlighting is simple enough to add new languages. Including your own toy language. This helps tremendously when you're still exploring potential syntax.

Sublime Text 2 works perfectly for me. It has TextMate compatibility for syntax bundles, so now my LESS files display pretty in the editor.

I've been using TextMate not long ago, but there is no port on Windows. ST 2 has windows and OSX version.

vim most of the time but end up switching to Chocolatapp if its html/js for Flask.


e [ http://www.e-texteditor.com/ ] is brilliant on Windows and supports TextMate bundles there. Simply the best I have ever found.

I use vim and Textmate every day. I like vim for it's speed, but I do use Textmate a lot for it's project mode and for a lot of markdown and xhtml - just out of habit really.

You might want to toss RubyMine and IntelliJ on the list.

I use nano if it requires editing a file for an install etc, as I am already in terminal. If not, gedit is my goto - i don't use a text editor that much

Vim or eclipse with vim bindings, I'm addicted to them. When I'm typing a document in Word I sometimes want to move up a line by pressing 'k'..

Sloppily conflating this poll and the poll and discussion the other day about TDD, the average HN voter can't grok TDD yet is down with vim :-)

I've been a fan of Chocolat lately. Simple, straightforward and easy on the eyes.


Wow, TextMate's glory days would appear to be over.

I've used Vim for a year now, daily at work for about 7 months, and still consider myself only a basic to intermediate user of it.

Nano and TextWrangler when I'm not using Arduino or Matlab. I usually go with whatever works best for that particular instance.

I use TexMate for Rails; emacs for Lisp & other stuff; and vi for quick git edits and things like that (also remote edits)

I keep hearing good things about Sublime, but I had no idea it was this popular. Maybe it's time to switch from Notepad++

When using Windows, I like using Notepad2. In Unix-like OSes, I generally go with Nvi, or Vim if that is not available.

I switch between CodeRunner and Chocolat. I like both, but don't love either. Will probably pony up for TextMate soon.

nano or pico, depending on what's installed

If only Sublime Text 2 was as extensible as Emacs, the things we could do! (And they wouldn't have to be all text!)

Switched recently from Textmate to Sublime for almost everything but iOS related work. So far so good.

I use IntelliJ for writing Clojure. Vim for terminal editing, and Textmate for everything else.

vim on the command line, TextWrangler in the UI. I find its nice to have TextWrangler open with my todo.txt and bills.txt files, and is also nice to be able to quickly throw in little hacks / debug code / etc., but for "real editing" vim all the way.

Have you tried using MacVim before? It provides a fairly nice UI for editing files but with the full vim interface/keybindings, and uses all your .vimrc files as well.

Funny enough - Notepad. Aside from having a single step undo, it is a very good editor.

textmate should be on this list

I use vim often, but my editor of choice is nedit. I currently host nedit.org, BTW.

Wow. Sublime is used more than emacs and look at me here thinking i'm the only one.

Nice to see all the love for Sublime Text 2 here. Definitely got my vote.


Can anyone suggest a good (and free) Python development environment?

It's not quite perfect yet, but Python Tools for Visual Studio (http://pytools.codeplex.com/) is actually pretty nice. If you're used to the VS IDE, it's not a bad environment for Python development.

I use Vim for that but can also recommend Komodo Edit:


I've done some coding in Eclipse with the PyDev plugin.

Eclipse...man. It's non-intuitive to me. I don't know how to get that IDE working properly.

In windows I use Notepad++. In linux I use gedit with Darkmate theme.

I use butterflies.


And also, vim.

Dreamweaver as a fancy text editor.


When I first started doing web programming at my first real programming job, everyone there used Dreamweaver as the IDE of choice. I used it for a few months before I could no longer deal with its idiosyncrasies. Now, I absolutely hate the program. It got to the point that I would only use Dreamweaver for remote file management (silly, I know, but I was still learning) and would open the files in emacs for actual editing. Eventually, I stopped using it all together and forced myself to find other ways to retrieve remote files.

In retrospect, I should have set up a source control repository and left the programming team a little better than I found it. Hindsight is 20-20.

vim whenever I'm ssh'ed into some remote server, an ide when developing code in a project for work, emacs when playing with lisp, textwrangler when playing on my mac.

vim for small quick shell scripts, and for editing on remote servers (used to be a lot more, not as much these days).

intellij for grails work.

zend studio and/or vim for php work.

visual studio family for .net work.

I am using TextEdit...

vim, with lots of interesting plugins :)

(my config: http://code.google.com/p/fisa-vim-config/ )

For Windows I used UltraEdit and for Mac I use BBEdit

This is what I use/would use if I had a Mac. It's all about having a great ability to search directories and filesets.

I am using FAR Manager every day to edit text files.

Vico is awesome (it's like vim and textmate in one)

Emacs 24 with evil mode, the best of all worlds

vim, because I spent the time years ago learning it and haven't had cause to look back.

vim-python is a lifesaver to avoid writing vimscript.

I use Vim because I've always used vi/Vim.

emacs in Unix. EditPlus in Windows. If I'm in a hurry in Unix, I'll use gedit depending on the distro...

When I was at middle school, when I was just a beginner, I had the problem of not having a nice and more advanced notepad. I spent a while until I found editplus, after that I, experimented with a lot of text editors unsuccsesfully. Once in a while, while googling "great text editor" saw something about those strange linux text editors. Crazy people, I thought.

Under editplus I learned about regular expressions and a bunch of things. Funny enough the first thing I made when installed linux for the first time was to install ediplus under Wine. Just some time later when I learned about emacs I really understood the programmers world.

Still editplus is the best editor for windows I have ever found.

I have some "util" apps I use since who knows when under Windows: SqlYog, Editplus, LeechFTP, Putty, StartupCPL (http://www.mlin.net/StartupCPL.shtml), hdclone. It's funny to see how much easy is the world for a developer under linux. Util apps simply doesn't exist. Just some commands that may not come by default on your distro.

+1 for EditPlus!

Nano, because openWRT >_<

Komodo Edit.

Another user here. Please add Komodo IDE/Edit.


added, thanks.


A vote for UltraEdit here.

Me too.





This is the sort of thread that doesn't work when you can't see scores. Me too.

In order of frequency I probably use nano > kate > NetBeans and the reverse in order of duration.

Wing IDE




Best windows text editor by far.



Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact