"Use a single editor well," The Pragmatic Programmer said.

I know it's about productivity, but how many of you really use a single editor for virtually EVERYTHING?

When your favorite editor doesn't integrate well with your development environment, will you struggle to use it anyway (by switching frequently between your editor and the IDE when you're developing something, for example)?

+3  A: 

I use one GUI editor for coding (with good syntax highlighting), but generally revert to VI when working on a server that only offers a command line interface.

Steve Moyer
+3  A: 

TextMate. It integrates with everything on the Mac and everything Unixy as $EDITOR or whathaveyou. I am not even joking when I say I use it for absolutely everything.

Every Mac developer hearts it.

There's only one major platform-specific IDE - which will integrate with it reasonably - and it's flexible enough to do just about anything else without getting in the way.

Jim Puls
The biggest weakness as far as I can tell of TextMate is that as soon as you aren't on mac all your TextMate knowledge in the world is useless. Do skills or scripts from TextMate map into any other editor on other platforms?
+1  A: 

I use Vim for everything except for C# 3.0, where you really need Intellisense because of type inference.

Paul Betts
Check out ViEmu. Its a Vim plugin for VS.
Brian Rasmussen
+3  A: 

I used vi for twenty years and it still surprised me occasionally with its power. Now using vim and finding more surprises in store.

Most of my coding is done on the command line or in Eclipse. Even in Eclipse, I will switch out to vim to do some particularly hairy text substitutions.

What is it about eclipse that makes you want to use it over vim?
+1  A: 

I personally use SlickEdit. But it has 'emulations' for other editors, about seven, and I use the Vim emulation. I'm alright with Vim. Intermediate, I would say; I'm not a wizard.

I'm working with Python at the moment, and SE surprised me; I thought it wouldn't be much good, but I've had no troubles.

+6  A: 

I am proficient with Emacs, and become more so all the time. I definitely go the extra steps to make Emacs do things that it might not do out of the box if it will help it integrate into some required environment. The less I have to leave Emacs, the better.

I will even write Elisp code (which is actually pretty fun). My favorite new feature of Emacs 22 is the ability to write shebang Elisp scripts!

Ben Collins
You definitely pass the Geek test. I salute you!
Christopher Mahan
+1  A: 

Not to toot my own horn, but I think I'm pretty good with Visual Studio. It's got awesome shortcuts, and lots of powerful features.

I do use it for just about everything too!

Esteban Araya
+12  A: 


Has all the syntax highlighting I need for most non-Microsoft things.

Past that, VS2005.

Ditto here. Visual Studio and Notepad++ cover almost everything I need to do.
Jon Tackabury
That's what I used before I learned Vim :D (2 days ago!)
Lucas Jones
Same here..VS2008 and notepad++
Notepad++ has everything (almost).
Notepad++ chokes on big files (long lines) and doesn't play well in intl environment (has troubles with deciding text encodings)
Yeah I've since switched to TextMate. Two years can do a lot to a man.
+29  A: 

I use vim to write code/documentation/papers/notes. I use vi-mode in zsh. Firefox has vimperator to follow vi-like keybindings. Mutt uses vim as the editor. My music player, ncmpc, uses the familiar hjkl.

I firmly believe in using a single editor well; I'm definitely more productive when I don't have to think about how to do what I want.

another vim user
another vimmer here
third. vimperator is a gift from god...or something.
Exact same setup for me, except bash. Plus finch It's all text + gvim in my vimperator. Oh, and awesomewm. Highly recommended for linux geeks! :) Vim mappings ftw!
Same here. Vim FTW!
I find vimperator kind of annoying because it doesn't implement vimness in the way I expect it to. [browser.vim]( is decent though. It's a bit slow compared to elinks or something, but it basically gives you a browser in vim.
For an mpd client I also use vim. There's a couple of addons on that serve this purpose, but the one I tried had weird bindings so I'm still using the ftplugin set that I wrote. Mostly I just use it to edit playlists, and do everything else with `mpc`. It will be possible to write a much cleaner interface once the conceal patch is released with vim 7.3, so maybe something nice will come out soon.
Also.. it seems like you're emphasizing using a single *user interface*, rather than a single editor. If we just wanted to use a consistent interface, we'd have a much broader range of applications to choose from by using the [CUA guidelines](
Even more also: for a shell within vim, [conque]( seems to be the way to go. The bugs list seems pretty acceptable, except for a lack of support for multibyte characters, which could be a deal-breaker.
+2  A: 

I use SXEmacs (would use any other Emacsen) to almost everything, from source code editing, compile triggering, browsing code, irc, IM, email and some browsing. The only thing I cannot do well is browse sites with a lot of JavaScript (which is a lot these days :( )

What keeps me using Emacsen is the powerful configurability and the community that keeps on developing packages and elisp features, and shares nifty little configuration snippets.

In order to gauge the extent of the stuff it can do, checkout

+1  A: 

There was a time I used Editplus for everything - creating shortcuts for all the compilers and linkers that I needed. It has been some time though. Unix has always been Vi or Vim for me. Somehow never got around to EMACS.

+13  A: 

To be able to use an editor for everything, it needs to be the right sort of editor. It needs to be flexible, extensible, and light (i.e., fast to open). I'll take those points one at a time:

"Everything" covers a broad gamut and so the editor has to be flexible enough to be able to work well across that broad gamut. Things like search, syntax hilighting, splitting, keyboard-shortcuts, multiple-tabs or open files are features I'd put in the flexible category. There's also that intangible of how it feels in various languages and scenarios. Does it, for instance, feel as good to use when coding C++ as HTML as Ruby as Plain text? It's got to be flexible.

No editor can come bundled with everything you need, so an easy, flexible extension system is required. The system should be powerful enough so that you can build a feature if it's missing, or even a whole new suite of functionality. It should also be easy enough so that you don't have to think too hard in order to create quick and dirty extensions and macros. It's got to be low friction, yet powerful.

One of the most annoying things is when you have a powerful, flexible editor that does all these neat things and you love to use it all the time, and yet it takes about a minute to load. You develop a kind of friction against it when you just want to quickly pop open a text file. In order to be able to use your one editor and use it well, it must be light enough so that you don't even think about popping it open to quickly view a log file or readme. It's got to be a frictionless experience. It's got to afford quickly opening, closing and moving around the screen (if you're on a GUI).

With these points in mind, what would I use on each platform?

TextMate (Mac OS X)
A perfect candidate for the one, true editor. Has a remarkably powerful extension system that takes advantage of underlying OS shell capabilities and scripting languages. It perfectly embodies the flexible, extensible, light mantra.

E Text Editor (Windows)
Essentially TextMate for Windows. Innovative use of Cygwin means it can take advantage of the power of the *nix shell tools and scripting languages. It even contains some things that TextMate doesn't have, such as Snippet Pipes.

Vim or Emacs (*nix)
Old-school, sturdy, reliable, time-tested. You see an experienced touch-typing hacker working one of these editors and it's like observing a 10th dan kung-fu master. These don't have the slick extension system of the first two, but who cares? The extension system is the underlying OS. The possible downside to these editors is the learning curve but, really, it's well worth the effort.

So yes, I do use one editor for almost everything. I do usually switch to TopStyle if I'm doing CSS, though. I'm mostly on Windows at the moment, so I mostly use E Text Editor. But if I'm on a Mac I'll use TextMate. If I'm on Linux I'll use Vim. The author of E Text Edtior has said he'd like to do a Linux version eventually, which would be awesome. Can't wait for that.

Charles Roper
I'd just wish that E Text Editor could compete with TextMate... Right now TextMate feels so more feature complete, solid and bug-free. Sucks when I don't have my MacBook Pro around.
Vicent Marti
Which features are missing from E Text Editor? I know of macros, but that's about it. It's also very stable for me and is very actively developed, so any problems are usually sorted out very quickly.
Charles Roper
It seems like VimL or Emacs Lisp would qualify as a slick extension system.. am I oblivious to some subtle majesty of TextMate's extension system, or are you unaware of the power of VimL? It's not the best language in the world, but it's definitely a scripting language. Lisp, on the other hand, is more or less accepted as the best language in the world, at least among those who have «earned their parentheses». Vim (and maybe emacs.. I don't use it) also has bindings to enable scripting with a pantheon of other languages: Python, Lua, Haskell, Lisp, etc.
It's also worth noting that both `vim` and `emacs` are available on all platforms.. so if you really want to use one editor for everything, it should probably be one of those.
+1  A: 

I am using vim, notepad++ and kate. Vim because my fingers had to learn it, way back the time I was a student, and notepad++ and kate because syntax highlighting and GUI can be nice when trying to work out the nuts and bolts of other's programming skills.

+4  A: 

I use (GNU) Emacs almost exclusively for all sorts of text editing and programming, yes. And frankly, it is my IDE too. It integrates with gdb and revision, it's easy to make changelogs, all in all, Emacs is a great tool for me.

I do, of course, have basic proficiency of vi(m) too, as well as ed. Sometimes those are the right tool for the job, for example when I've done completely fresh install on a computer and have not yet installed my editor of choice.

+1  A: 

Yep, I read that in PP and thought I'd give it a shot. Before that I'd been using whatever came to hand e.g. Visual Studio or Eclipse, etc... Never really learned any editor to any kind of depth (except LSE on VMS... ah, I miss VMS).

After about 9-months of VIM I discovered that despite all it's wonderful features I was leaving :w and :wq all over my code. Very annoying, I guess I am just not cut out to use a modal editor.

I tried emacs for a while but started to get serious pinky strain. Also, I kept hitting / for incremental search (and still do, thank goodness it works in Firefox). I like the server mode though, works well with a command line or terminal.

Now I'm using Komodo Edit, and liking it very much, it's cross platform so I can use it on my Linux and Windows platforms. Incremental search sucks quite a bit but it's an open source project and if that incremental search bugs me enough I will just have to pitch in and fix it.

+2  A: 

I guess i will chime in, i use VS for everything as I do mainly .net. It serves my purposes. Its not the fastest at times in performance, but i am productive because i have used it for so long. ANd the addition of resharper really boosts productivity.

+5  A: 

I've been a Vi/Vim user for over 15 years now, I first picked it up when I got a mail account at my dad's college as a teen. Most of the features and commands are pretty much programmed in to my brain now. When I'm editing I basically just think in terms of Vim commands. I doubt that at this point I'll ever be able to work as efficiently with anything else.

For a year I held an internship position at a Japanese company maintaining some CAD software written in VC6. I'm sure if you've ever had the "pleasure" of using the VC6 IDE, you'll agree with me that it's not exactly the best programming environment :) Now throw in a host of internationalization bugs for Japanese version and it only gets better.

Of course, debugging, compiling, and GUI editing was better suited to be performed through the IDE so I did all those tasks there. I spent a year working in this IDE / Editor split environment.

To be honest, it wasn't even that bad and I would gladly do it again if I had to. Fortunately the company I work at now is mostly Linux machines with macs as desktops, so I can get my Vim anywhere.

Kamil Kisiel
+1  A: 

On my PCs I use gvim for notepad duties and other source files. I primarily work with C# 3, F# and VB9 so I use the Visual Studio IDE, however I cant be without vim like features so Ive got ViEmu installed, as well as Resharper(at home) and CodeRush(at work) and it all plays very nicely together.

I also use ViEmu with SQL management Studio. It works with MS Word & Outlook, but I dont use either of those. So I get much vim support pretty much anywhere - any langauge.

On my mac I only use Vim.

Jim Burger
+2  A: 

I use Vim (gVim for windows) for almost any text viewing and editing job I do; and I use it well enough. When I was working on a Rails project, rails.vim was all I need to make Vim my entire development environment.

Unfortunately, as much as I would love to use Vim all the time, my current .NET project has me on Visual Studio, and Visual Studio's intellisense (auto completion) really increases productivity; and having all the method definitions available instantly helps the newbie .NET developer. In this case, I'll mainly stick with Visual Studio, switching to Vim only to do more complicated search and replaces, which I'm more familiar with in Vim, and also much faster.

In my case, switching between Vim and Visual Studio was too much of a waste of time with little benefits; so I learned to live with Visual Studio instead. (Perhaps if I continue to use Visual Studio in future projects, I'll bite the bullet and get ViEmu.)

+3  A: 

I use vi (or some variant) for everything, yes. My normal environment is something unixy and my standard "IDE" is several xterms running vim (or whatever non-editor tool may be needed in one at the time), plus one tailing the relevant log if I'm working on something that doesn't run entirely on the command line (e.g., web apps, daemons, etc.).

It's been a good 7 or 8 years since I last worked in Windows, but, when I did, I made a point of getting my hands on an editor with a vi mode as well. I don't recall it being any real "struggle" to switch off between my preferred editor and the Visual Studio IDE, but that may just be because I opted for the consistency of running the MSVC compiler from the command line instead of using the IDE...

Dave Sherohman

Definitely Notepad++, I've tried several editors a-la TextMate because I 've always saw these great screencast on Macs and how the creator enjoyed it but those editors were too slow in windows. Notepad++ is really fast, has tabs, supports a myriad of languages (for syntax highlighting) and its open source. Haven't tried others but notepad++ works really well for anything that you could need. Its even faster than having to open Visual Studio just to take a look at a file and its way better than having notepad.

Gustavo Rubio
+3  A: 

Visual Studio for Coding (C++/C#), plus Visual Assist.

Ultra Edit for Scripting and general text/hex editing.

I'm by far not an expert in these tools but i try to learn something new from time to time. If i could use some functionality really badly, i often first go looking for that instead of doing it manually. The problem is, you often don't know where to look for that functionality and how it is called, which makes it hard to find out wether it even exists in the first place.

Generally, you want to know the things that improve your productivity a lot. For example, instead of copy&paste classes then correcting them for the new behavior, invest some time to build a template library (eg. Visual Assist autotext). I've also automated some tedious and error prone aspect of binding code to Lua and adding new classes to the factories. This is a tremendeous help.

Additionally, if i could single out a highly important feature that i use every day and saves me a bunch of time is block edit mode. Not the one you can do in Visual Studio by holding down ALT and selecting. No, i mean a good block edit mode where you can select AND cut/copy/paste or simply type on multiple lines at once. UltraEdit seems to be the only Text editor that allows this. So regularly i copy & paste code from VS to UE just to block edit it, then paste it back into VS. The additional overhead of 2x copy&paste is still better than using replace and figuring out what to replace with what (and also not running it over the whole file/project accidentally).

So i'd say, for most of us, it's not "use a single editor well" but rather "know when to use which tool for a given task - and if you don't know that tool/functionality yet try and find it!". But that's just not as catchy. ;)

I think the idea is to use a single editor that's powerful enough to implement, or at least provide convenient access to, all of the functionality that you end up looking for, thus avoiding time-consuming, flow-breaking, and boredom-enhancing tedium like copy-pasting code from one editor to another.

Lately my main editor of choice is netbeans 6.5 but for quick editing and viewing of code i use either notepad++ or the built in web developer add-on of FF. I also like Dreamweaver because of syntax highlighting and being a WYSIWYG editor. But most of my projects are on netbeans 6.5. A few years back I used MS's Visual Studio developing Win32 apps, now I moved on to open source web dev that's why I switched to NB6.5

IMO it really depends on your development environment needs. If you develop in MS you can use VS, but for open source there are a plethora of editors which can help you ease up on the development process.

I hope this helps...


Visual Studio in the main - i like the macro facility a lot, ie record a macro and then be able to edit the script is very powerful.

If i need to edit a file on a server then Notepad++ usually gets installed.

Although recently the differences between SQL Managment Studio are becoming really annoying.

Why are the two systems so different - i thought they were built from the same core.

Why can't Managment Studio do macros?

Why can't VS save sql query results as text?

Why isnt the experience in each studio different - should we have some coherent stable environment by now?

+1  A: 

Yep, Xemacs all the way.

I don't know why people say that Emacs is hard to learn - it's self documenting, and it has a command line where you can tab-expand the command you're typing (trying to find).

(Actually not quite true - I programme in Squeak as well, where you use the built-in editing functionality, which doesn't need to be good.)

+1  A: 

I use Visual Studio for coding. It works well most of the time, however, I don't use it for viewing data files and logs produced by the applications, because VS is slow with large files and keeps suggesting me to reload files that have changed, which is annoying.

So mostly I use TextPad, which handles large files fast and only suggests to reload the file I'm currently viewing. But sometimes I use UltraEdit, because it can count the number of occurences of a string, or Notepad++, because it can collapse XML elements. So there is no ideal tool that makes all others useless.


I use several editors, depending on the task at hand. For programming, I use the editor of the IDE (Delphi, VS, or whatever). My favourite for text files is SciTE. (RegEx in search and replace - wouldn't leave home without it!)


I use Visual Studio when developing. It's hard to beat that feature set even if it is occasionally slow.

Otherwise I use TextPad (RegEx search and replace, tabs for documents, lots of other features).


ConText is my favorite all-purpose text editor. I use it to edit code, config files, huge EDI files etc. Freeware. Every computer I work on must have 2 things: Opera browser and ConText.

+2  A: 

Textpad It has all the normal features and I know all the shortcuts I need. It has a column editing mode without which I can not work. Easy to use macros. The only thing I would have liked if it was scriptable.


I am a firm believer in good out of the box IDEs instead fiddling around with emacs/vim till they get to do everything for everyone.

I heavily use Refactoring and IntelliSense (tbh, i'd be completely lost without) and so I tend to use IDEs that support both of them very well.

My personal favourite is Visual Studio 2008 with Resharper installed for .NET development. I do mainly .NET work so I get a huge productivity benefit from Resharper in the well-working environment of VS2008.

When doing Java I either use IDEA or Eclipse. Both tools have excellent refactoring support and are very well suited for their task.

I could never imagine going to VIM (in it's default state) for any serious .NET/Java development.

I really love VIM for viewing files or searching through them. If you need something quickly, fire up VIM and do it, but for anything bigger I'll go with stronger tools.


I use emacs for every single thing I can, the fewer times I have to move my eyes on the screen, or take my fingers away from the home keys the better. I even use 'Hotkeys' to emulate the basic emacs keyboard macros when I'm working on a windows box (OS X already does this for you, try it). Editing text becomes as easy as touch typing, and tasks that would take a mouse in other editors just fly off your fingers once you finally force yourself to learn all the keyboard macros for tasks you perform on a regular basis. I'm constantly digging through the emacs documentation looking for inspiration or new ways of doing things. Whether it is emacs or some other editor, make the investment in learning it thoroughly, and using it for every task you can possibly use it for. That is the best piece of advice I pulled from 'The Pragmatic Programmer.'


I have used emacs exclusively for nearly 25 years, using it on just about every flavor of windows, *nix and the mac (even back when RMS boycotted Apple there were ports and work-alikes). I would say I know it well, though there's always something new to learn about emacs.

That is my favorite feature (shared by vi/vim, but probably by not much else) -- it's been available seemingly forever, and runs on just about any box you would want to develop on.

Bryan Oakley

Textpad is my editor of choice. Some years ago I also used it for development of Java and PHP-apps, until I found some nice PHP plugins for Eclipse. Now it's Eclipse for development and Textpad for everything else: I especially like the sort function (with three keys, it allows to reduce multiple lines to one) and the regex-engine when searching. Also the block-editing mode is something I've never found in any other editor. Worth it's weight in gold when working with directory listings and only needing the filenames ...


In heaven, Visual Studio comes with vim syntax as a built-in option.

(Sadly, on earth, it's not even listed for the next release. :( )

le dorfier
+2  A: 

I use Vim on both Linux and Windows for most of my editing tasks. For Visual Studio I use the ViEmu plug-in which gives me both Vim and access to VS (and it works with ReSharper as well).

For viewing only I sometimes use less (also available on Windows) but as it uses the same keys as Vim for moving around - it feels like Vim.

For heavy editing of large files I tend to use Perl (used to be sed/awk).

Brian Rasmussen
I always get annoyed at not being able to do things like `zz` in `less`. It breaks flow to discover that something doesn't work, and have to figure out if it's available through some other command. So I just pipe stuff into `vim -` instead.

If I could use a Mac at work, it'd be TextMate all the way. As it stands I have to settle for TextMate at home and VIM at the office.

Steve Losh

I use different editors:

  • Notepad++ (for most things)
  • Visual Studio's editor (when working on solutions)
  • SQL Server Management Studio's editor (for most sql)
  • Windows Notepad (when rdp'ing to servers)
  • Programmer's Notepad (recently used this for html)
Ole Lynge
+1  A: 

No reason why you can't have a cake and eat it. This excellent plugin VIEMU allows you to use your VI knowledge in Visual Studio. Been using it for months and am pleased as punch. Saves me lots of time

+1  A: 

I use vim for everything on Linux/Windows/Mac. I'm a bit struggling with Xcode on mac because it is very nice IDE but no vim bindings, but I still open files in vim and then compile in Xcode, I get work done faster that way - it's just too slow to move around with mouse and highlight/paste stuff (not much 'copy' as vim does that for me ...).

I quite often use vim's regular expressions to look through data logs, for cutting logs into small pieces and for transforming one specific format of log file to another - it's so easy to use regular expressions from within vim.

Plus compiling and debugging in linux terminal is a breeze, I would usually open the whole project in one terminal and use :mak to compile and then fix all warnings/errors as I go (:cn).

Plus searching source code does not get any better than :vim /bla/ *.cpp *.hpp and have the output show in list (:cope) so that I can jump into any file of my project with the expressions ...

+1  A: 

I have used KATE (comes with KDE) for years. Its lightweight, has a snippet library, inline shell window, syntax highlighting and sessions (to load different projects). Its also not hard to write extensions or plug ins to work with KATE.

I don't like a lot junk in my editor. I just want:

  • Syntax Highlighting
  • Code folding
  • Find / Replace
  • Sessions (or individual projects)
  • A snippet gallery
  • Easy keyboard shortcuts
  • Easy tabbed / split windows

KATE gives me that. I know that many people love emacs, but I really prefer something more lightweight. I spend more time looking for the simplest of functionality in emacs where with something lighter its just intuitive.

That being said, I'm often editing code in place using some kind of terminal (usually SSH), so I'm familiar with nano / vim. But, I prefer KATE.

Every time I try using something more 'modern', I tend to find the new creature comforts like code completion more annoying than anything. To me, most modern IDE's are just too 'busy' for my liking, but I'd say the same thing about emacs.

Tim Post
+1  A: 

I think it depends what your editor is, and why you use it. If I had an IDE with awesome auto-complete etc., I'd force my habits to adapt even if it meant giving up vim for coding. As it stands, I use vim for everything. For a while I didn't, but I found myself typing :52[enter]cwsstuff[esc]:%s/... and then staring at the page trying to figure out how it got there, what it meant, and why it hadn't happened already. Not having to ask myself which editor I'm in every time I think "replace word" is a real boost.

Kim Reece
i+1^[:wq^M:w comment | q^M

Vim/GVim (well, any of the family), Notepad2, EDT

I've used a number of editors over the years - these are just the ones that stuck at some particular point in time, and remained for some years now.

I don't believe in using a single editor only - a good workman will use whatever tools necessary AND/OR available to get the job done.

In the long run, that's quite powerful. But for the first few years/decades you go through that awkward phase of only knowing how to use half the tools in each of your 14 toolboxes. Also you end up spending time building awesome tools that only work with 1/14 of your other tools.
@intuited - also true.

The editor that I could really use for everything doesn't exist. It would have

  • the ability to display rich text and multimedia with DOM reflection tools like those found in chrome or firebug (or WordPerfect 5.1... reveal codes FTW :)
  • scriptability in a variety of languages, including python and javascript
  • vim's interface and data model, including macros, registers, buffers/windows/tabs, operators/motions/commands, etc. Probably it would be re-organized and modernized to make it more consistent, and more suitable to tight integration with a variety of modern languages. Backwards compatibility with vi is useful but tends to make VimL, and vim itself, a bit haphazard.
  • the ability to run in console mode or GUI mode. GUI mode would just have the advantage of being able to display inline images and probably some integration with the window manager.
  • a philosophy of providing a rich, multilayered toolkit rather than a panoply of hard-coded end-user functions. Ideally every element of end-user functionality would be composed of functions accessible through the editor command line, with the same to be said about those functions themselves, all the way down to the turtles that live in the sewers. The turtles are named after famous exports from the underlying cross-platform binary library (and extensions).
  • package management with a feature set comparable to aptitude, and integrated with DVCS, for installing editor plugins. It should be possible to distribute a file that uses inline scripts that depend on one or more plugins, and have the editor install or update the needed dependencies via DVCS when the file is opened.

IntelliJ IDEA for Java, and e for everything else.


Gedit, and I use it for everything. I love one of the dark color schemes for syntax highlighting. I've installed a bunch of plugins for it so I can see classes/methods/function (in Python) and view files in a sidebar and have a bottom pane which shows me a terminal and Python interpreter, and there's a session manager (which is AWESOME). There's lots more plugins but that's what I use most often.