top | item 3717754

Poll: Which text editor do you use daily?

151 points| methoddk | 14 years ago

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...

200 comments

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

[+] skrebbel|14 years ago|reply
> 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.

[+] nsm|14 years ago|reply
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
[+] methoddk|14 years ago|reply
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

[+] whateverer|14 years ago|reply
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.

[+] ohhmaagawd|14 years ago|reply
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

[+] cageface|14 years ago|reply
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.
[+] kjetil|14 years ago|reply
At least on OS X you can set up an "idea" command for opening arbitrary files. Only local files though. Check the File menu.
[+] FrankenTan|14 years ago|reply
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.

[+] davvid|14 years ago|reply
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!

[+] Vitaly|14 years ago|reply
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.

[+] eshvk|14 years ago|reply
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.
[+] eshvk|14 years ago|reply
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.
[+] writetoalok|14 years ago|reply
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 ...

[+] aw3c2|14 years ago|reply
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).

http://www.jedit.org/

[+] Avshalom|14 years ago|reply
I use Vim these days but I've got a lot of fond memories of jEdit, it's a fantastic tool.
[+] was8309|14 years ago|reply
jedit here (until someday emacs : "vim scripting" < java < (e)lisp ?)
[+] luriel|14 years ago|reply
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.

[+] 4ad|14 years ago|reply
I remember there's a chording patch for sam.
[+] tikhonj|14 years ago|reply
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.

[+] hassy|14 years ago|reply
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.

[+] aaronjg|14 years ago|reply
It sounds like you have done a lot of great customizations to your emacs. Care to share your .emacs configuration?
[+] namzo|14 years ago|reply
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.
[+] methoddk|14 years ago|reply
Check out TextWrangler. Pretty similar
[+] ricardobeat|14 years ago|reply
ST2 gets you most of the missing features, like bracket matching, sane indenting etc.
[+] jilebedev|14 years ago|reply
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?

[+] parbo|14 years ago|reply
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.

[+] Derbasti|14 years ago|reply
> 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.

[+] terhechte|14 years ago|reply
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).
[+] eccp|14 years ago|reply
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.
[+] handzhiev|14 years ago|reply
Kate. Strange it's not on the list. Anyone else using it?
[+] vasco|14 years ago|reply
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!
[+] jk4930|14 years ago|reply
Yes, for everything except editing word documents. :)
[+] saryant|14 years ago|reply
MacVim with the Janus additions.

https://github.com/carlhuda/janus

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.

[+] jergason|14 years ago|reply
FYI, you can set bash to vi mode with `set keymap vi && set -o vi`.
[+] evincarofautumn|14 years ago|reply
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.
[+] pknerd|14 years ago|reply
No Netbeans???? ++1 for Netbeans!
[+] mmphosis|14 years ago|reply
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:

  Xcode