What are the 3 killer features of your favourite text editor that you couldn't live without; the features that keep you loyal to your editor, no matter how good other people say other editors are?

EDIT: Sorry for what appeared to be a dishonest, or karma whore question. I honestly didn't mean it that way. I have turned it into a community/wiki question.

Later EDIT: FWIW (to help soothe irritated nerves), I'm not asking this for pointless discussion. I am the author of a text editor, so I am trying to tap my target audience so I can direct my development efforts in the right directions to please more users. People very often say "editor XYZ rulez!" without saying why; I want to know the why.


It has to support replacing with Regular Expressions, macros, syntax highlighting and some kind of extensibility. VIM (because it is free, and ubiquitous) is my choice, but there are plenty of other good editors.

  1. Syntax highlighting.
  2. Intellisense.
  3. Speed.

Hello Visual Studio. I like Dreamweaver too.


I'm going to go with "unlimited undo and redo".


Just one- my text editor must have the property of being VIM.

  1. Easy Extensibility. (I.e onboard scripting language, like say... a lisp).
  2. Macros.
  3. Anything else builds on top of 2 and 1.

It has to load fast, which is why I still use Notepad. So sue me. I don't want to wait for a text file — not even a second.

That's #1, 2, and 3. It has no other features.

  1. familiarity (can I configure the shortcuts so they make sense to me)
  2. reliability (how easy is it to loose my editing)
  3. global and local search/replace with&without regex support.

As an Emacs user for the last few years, obviously I don't feel I'm getting anything out of a text editor unless it has a built-in therapist...

More seriously:

  1. Syntax colouration, ideally with an easy way of setting up one's own colourschemes, certainly with an easy way of choosing the colour scheme for the current document. Best of all would be the facility for multiple syntaxes in a single document so that you can have your html, javascript and server-side code all colourised correctly in their respective parts of the same document.
  2. Bracket Matching - that one is really important. Doubly good if we can have bracket matching that is smart about brackets in quotes, regular expressions and so on. Also, to combine with the above, having brackets that could match themselves in a document so your server-side brackets wouldn't match against brackets in html and so on would be very smart.
  3. Regex search and replace- if a text editor had good regex analysis built in that would also be very useful.

If your text editor is to be useful long term it needs to have pretty much everything available on keystrokes as well.


I use Crimson Editor for almost everything... most loved features:

  1. Syntax highlighting
  2. Regex search and replace
  3. Vertical selection area
  4. Capacity to deal with huge text files

Here are my essentials:

  • Every single feature has to be accessible through keyboard shortcuts.
  • Persistent line bookmarks.
  • Search/replace with/without regular expressions in all opened files or files in a directory.
  • Column editing mode (try UltraEdit)
  • Hex mode.

P.S. Syntax highlighting in a programming text editor is not a feature, it's a requirement.


"the 3 killer features"

Insert Delete Search Replace Repeat last and least: Count

  • Speed
  • Easy to use
  • Doesn't get in the way (no cluttering with hundreds of features)
  • keyboard-only usable
  • keymappings that fit my environment (console: :w for saving, macosx: "cmd+," for preferences, gnome: ctrl+w for closing the window)
  1. Macro support - I really can't live without this. The first day you need to do the same thing to every line in a 10K+ SLOC file, your wrists will thank you.

  2. Support for viewing multiple files at once. This can kinda be faked by bringing up multiple instances of some editors, but then you can't easily navigate between the windows. Taking my hands off the keyboard, locating the mouse, locating the mouse pointer on the screen, then moving it around and clicking on things, does not count!

  3. User-customizable - I don't mean changing your font colors. I mean users need to be able to fix the language support if there's something in it the developers didn't get quite right. Users need to be able to write (and publish) their own language support for the editor when Frobozz4 becomes the new hot language next week.

I'll add another super-item for compiler writers, which I'll call item 0: If you can't provide an editor that is better than VIM or Emacs in significant ways, don't bother. Just give your users one of those editors (they are GPL after all), and move on to what you are good at. I'm really sick of being handed IDEs that insist I use horribly inferior homebrewed editors.


The first feature I look for in trying out any editor is whether it can do a recursive search and replace over multiple unopened files, with just a mouse click or two. That is, first using the mouse to click-drag-select some text, even spanning lines, then with a click on the toolbar (or using a couple of keystrokes), without launching any external utility, to display a dialog box with various options (including the previously highlighted text in the to Find field) such as: Find (includes using regular expressions across multiple lines), Replace with, In File types, In Folder(s) or browse to button, Match Case, Match Whole Word Only and Search Sub Folders, etc. Then maybe just leave the Replace field blank to delete the highlighted text in all the files.

The second feature I'll look for is a simple file compare, can it compare two files and open the results in a third containing only the altered or unique strings from the newer file.

Then I'll see what syntax highlighting and code completion features it has, and whether there is a plain text file I can quickly edit for additional file-types it doesn't yet include. Code completion/correction must be configurable, to prevent it sometimes adjusting ordinary words that aren't being used as keywords. Having to do this tediously through a dialog box or tab somewhere under the options doesn't count.




The folding features of Edit Pad Pro are great. It's a bit like having an interactive grep, which is a killer feature.

Perhaps not as much when typing and editing your own content, but if you've ever opened a tens of thousands of lines long log file, and wanted to look at some recurring pattern with N lines of irrelevant crap between them, you want folding.


Syntax highlighting.

Keyboard indent L/R

Vertical split-screen window


Not a variant of vi.

  1. remapping all keys
  2. strong macro capability
  3. support of files of any size
  4. transparent support for files from other platforms

Telepathic completion.

No, I'm not joking. Well, um, actually, I think it's called dabbev-expand (dynamic abbreviation expand) in Emacs. It cycles through words in the buffers that are prefixed by the word before the cursor. (Typing com[][][] would give me "completion.", then "completion", finally "common".)

  • Syntax highlighting. And code-sensitive indentation.

  • Macros. Emacs also has the trick where you can edit and save your macro, but I rarely use it. I'd really like it if that was easier. (If I was writing an editor, I'd probably use Lua for all of that stuff.)

  • Folding. Personally, I like being able to choose my own place for folding, using some regexen, like "{{{" and "}}}". I find the common code-inspection style folding to often be quite annoying since every other line has a foldable keyword on it. Must also nest.

  • Search fwd and back must be hindbrain-reflex simple.

  • Goto line. Also from cmdline, so it can be used in scripts. Consider trying hard to interpret "no-such-file" arguments as line references, at least +123, 123, -123, should work. --123, "^void foobar" would be even nicer.
  • Bracket matching. New to me, but now that I have it...

...Lot's of other stuff.


You'll probably get as many answers as there are different features in text-editors.

  • Splitting the screen to look at a different section of the same file or a different file.
  • Undo multiple times
  • searching

Other features that I'd miss:

  • code completion
  • spell checking
  • syntax coloring
  • ...

Five things I couldn't live without:

  • Syntax Highlighting
  • Code Hinting
  • Folding (Helps on very large classes)
  • Snippets
  • Commenting/Uncommenting selected text

Other things I wouldn't say no to:

  • Some kind of a design view
  • Alternating line colors (Again, great for large files)
  • FTP Module
  • Support for frameworks (Highlighting code, hinting, etc. for things like jQuery)

The one thing I would love to see in an IDE is some kind of code formatting that let you dictate every last detail as to how the code should look. Every firm, company, and coder has their own specific little quirks when they code and it would be nice to be able to accommodate those quirks. That way, when you're working with other people or just cleaning up old crap, you don't have to run the formatter and then clean up the stuff the formatter messed up.

  • Can't live without column markers to help me wrap my code at 80 characters.
  • I love the "column editing mode" of UltraEdit.
  • Find and replace in files (with regular expressions).

Must haves for me are:

  1. Syntax Highlight
  2. Split Screen
  3. Function pop-ups
  4. Line-numbering
  5. Overall comfortable lay-out

Must be and fast (especially to open), utterly stable and not-noticeably-affected by however many files are loaded or whatever a files size is. It mustn't be bloated with unwanted non-editor features, or if it is these must be easy for the user to hide or remove.

All commands must be available with simple shortcut keys, (with only minimal use of keys at a distance e.g. very little use of the function keys). Menus and toolbars must be uncluttered and easily customisable, to be able to add or remove commands or buttons.

Must be able to run external programs or pass commands to the OS, passing parameters and capturing output in an editor window. Must have a way to easily add these as menu and/or toolbar items for easy access, (with a good selection of icons to choose from).

  • Regex in search/replace

For me :

  1. Customization: syntax highlight, code formatting (and the possibility to modifying these parameters of formatting).
  2. Fast and reactive.
  3. Macros and code completion, with an easy way to (re)define macros (to remove annoying macros, to create my own ones...)
  1. bundles/snippets (MUST HAVE) like textmate;
  2. Multi line edit (like textmate);
  3. ftp access;
  4. good syntax highlight/code indent (like textmate);
  5. bracket balance/bracket hightlight () {} [] (like textmate);
  6. code folding (like... textmate :D );

So, the winner is... e-texteditor (on windows). I don't like textmate, even E is his clone. My opinion is that E is waaay better than textmate :D As alternatives, you have sublime editor and intype (with all features i said before). Obviously, on windows :)


My editor is EMACS, so the list is somewhat predictable. I'll try to stay with things not commonly found in other editors (except may be vim)

  • Word completion from loaded buffers (esc-/). This has 90% of useful functionality of Intellisence, without getting in the way.

  • Incremental search based buffer switching (iswitch). You need to enable it, but it's shipped with emacs.

  • Automated location of matching file (switch between .c/.h)

Of course, all the other good things - macros, regexps, syntax highlighting, autoindent - they are there too. But the first three are the reasons I find it difficult to code w/o EMACS.


My must have features are (actually my wishlist)

  • A tab alarm bell, rings when a tab is found/inserted in a space indented file
  • Indent Style detector (editor works out whether the code is in K&R or Allman's indent style by analysing existing code in current file or other files in directory)
  • A highlighter for indents which aren't a multiple for the indent size (when in space indent mode)
  • An autoformatter which is smart enough to work out that I've manually unindented (out of habit) before typing the closing brace and not double unindent it.

An editor that provides a good emulation of the original Brief keyboard.

  1. Virtual Whitespace Support
  2. Commandline (The ability to compile with an external program directly from your editor, and the ability to capture output from that, i.e. Compiler errors etc.)
  3. Multi-Line Tab Support For Open Files
  4. Syntax Highlighting (w/ ability to make your own syntax highlighting files)
  5. Full customization of formatting. (I.E. being able to choose to Hard Tab to 5 spaces rather than 'Smart Tab')
  6. Execution Keys (being able to bind a command - perhaps a Commandline command - to a key)


  • comint mode. There are lots of language with REPLs, shells, and other command-line utilities. Being able to work with all of them with the same shortcuts, even under Windows, and having completion in all of them, is absolutely great.
  • Incremental search, everywhere. When searching in a file, when opening a file, when searching for a command, etc.
  • Complete customizability and extendability.


  • Modal editing. Of course, this may be used as a test of 3 above. Can users emulate Vim's modes by customizing your editor?


  • Buffers instead of tabs. The ability to split the screen however you want is vital.
  1. Multilevel undo, so you can undo more than one thing.
  2. Syntax highlighting
  3. Auto indent code (gg=G)
  4. Advanced cut and paste

And all above must be with quick access from the keyboard, vim works for me ;-)


  1. Immediate interaction with your program process, while you work; I don't know how to avoid saying "SLIME" here. Once you've used SLIME, nothing else really compares. Just as you get a huge increment in power from "dumb editor (like Notepad)" to "an IDE that knows the syntax of your language", you get another huge increment in power if your editor actually has your code in a running process that you can use (and introspect) while you work.

    Another way to look at it: think how much more productive you can be in a scripting language where you don't have to recompile every time you make a change -- now imagine how much more productive you can be if you didn't have to even restart your program.

    Lisp has some features that make this really shine, but there's no reason I can think of that other languages couldn't also do it, with varying degrees of difficulty. (Well, C++ might be hard, but Python, Ruby, Java, etc., seem feasible.)

  2. Usable extensibility; in practice, the only editors I've used that really got extensibility are those that were at least partially self-hosted. The kind of extensibility you get from exposing some C functions is completely different from the kind of extensibility you get from having all of the editor commands written in the same language it provides for extensions.

  3. Cohesive design; I've seen many editors (and other programs) which have piles of features, but they don't play well together, and it's generally just a mess. You can slap individual features on Notepad all day long and never get an Emacs or a vi. As but one example: in my editor I use the same completion function ('type a couple letters from anywhere in the name') for both file names (inspecting the filesystem) and function names (inspecting a running process, not just parsing open files). I can't imagine using an editor which could autocomplete my function names, but not my filenames (or vice versa, or do both but with a completely different UI), yet that seems to be remarkably common.

  • Scripting (ala EMACS or Vim)
  • Regular expression engine to handle all of those search and replace operations
  • Compile output mode (most have this now) so you can skip to errors in your build easily.
  • Configurable/scripted syntax highlighting
  • Non-GUI mode for those times I'm logged in by SSH over 3G at 2AM while the customer is on the phone with a "major" problem (ok, so this is rare, but non-gui mode is still a requirement for me).

1 - undo-redo

2 - able to do macro ( why not including save them for further re-use)

3 - syntax highlighting


1 Regex searching and replacing (including across folders or all open files) 2 Syntax colouring and font styling (e.g. bold for keywords, italic for comments) 3 Highlighting of search matches 4 Brace/bracket matching