views:

1126

answers:

37

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.

+3  A: 

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.

harpo
That's why I have Emacs set to autostart. It boots with my desktop, and stays running until I shut down.
Just Some Guy
Yes, I'd like to see this feature in SharpDevelop -- which it doesn't have that I know of.
harpo
But there are plenty of Windows editors that can load files as fast or faster than Notepad. Just as a test I loaded a 500 kByte file in my editor called Zeus and in Notepad and both loaded the file in less than a second. When loading a 30 Meg file, Zeus was 4 or 5 times faster than Notepad.
jussij
Notepad is really slow when opening large files
AtliB
True, but good source files aren't that large.
harpo
Notepad2 or Notepad++ surely. Using plain old Notepad for coding is just wrong on so many levels.
demoncodemonkey
Since my original post, I've tried dozens of notepad alternatives. Programmer's Notepad has stuck. I've learned from the experience that the programmer-editor relationship does require a bit of chemistry.
harpo
+2  A: 

"the 3 killer features"

Insert Delete Search Replace Repeat last and least: Count

Windows programmer
+15  A: 

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.

Kris Erickson
Regular Expressions with Perl syntax
Rob Kam
+4  A: 
  1. Easy Extensibility. (I.e onboard scripting language, like say... a lisp).
  2. Macros.
  3. Anything else builds on top of 2 and 1.
Jonathan Arkell
+2  A: 
  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.
+8  A: 

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

Greg Hewgill
+1  A: 

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.

unwind
+8  A: 

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

Andrew Medico
+2  A: 
  • 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)
Fabian Buch
Do you mean that the screen shouldn't be cluttered with widgets?
Joshua Swink
+1  A: 

Syntax highlighting.

Keyboard indent L/R

Vertical split-screen window

GUI

Not a variant of vi.

Paul Nathan
@Vlion: What do you mean by "L/R"?
Pistos
Left right. I can select and hit alt-left/alt-right or some similar combo and block indent/exdent.
Paul Nathan
+1  A: 
  1. remapping all keys
  2. strong macro capability
  3. support of files of any size
  4. transparent support for files from other platforms
EvilTeach
+2  A: 

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.

glenatron
+10  A: 
  1. Syntax highlighting.
  2. Intellisense.
  3. Speed.

Hello Visual Studio. I like Dreamweaver too.

rodey
speed and VS ?........
VS is pretty sluggish for anything but small files imo.
Brian Rasmussen
+2  A: 
  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.

T.E.D.
+1  A: 

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.

Anders Eurenius
+1  A: 

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
  • ...
projecktzero
+1  A: 

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.

Stephen
By code hinting I assume you mean a popup list with suggestions as you type, intellisense, etc.?
Pistos
Code hinting, Intellisense, call it what you will.
Stephen
+3  A: 

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
Skubs
Syntax highlighting for unknown file-types by an easily written external file.
Rob Kam
Crimson Editor is very cool.
moffdub
+1  A: 
  • 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).
Ates Goral
+1  A: 

Must haves for me are:

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

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

Rob Kam
+1  A: 
  • Regex in search/replace
Ace
+1  A: 

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...)
romaintaz
+1  A: 
  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 :)

Ionut Staicu
+2  A: 

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.

Rob Kam
+3  A: 

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.

cubex
+1  A: 

find-as-you-type

Johannes Schaub - litb
+1  A: 

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.

Arkadiy
+1  A: 
paperhorse
A: 
  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)
Dalin Seivewright
Could you clarify what you mean by multiline tab support? Do you mean that if the editor used tabs to show open files, that it could split the tabs across multiple lines? Or are you referring to tab characters?
Pistos
Sorry for the confusion. I mean multi-line tab support for open files. Some editors keep all the open file tabs in one line and expect you to click on a little drop down button to select an open file that isn't displayed.. Some people prefer this way but some despise it.
Dalin Seivewright
A: 

Emacs

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

Vim

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

Both

  • Buffers instead of tabs. The ability to split the screen however you want is vital.
Alexey Romanov
A: 

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

jussij
A: 
  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 ;-)

/Johan

Johan
A: 
  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.

A: 
  • 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).
Adam Hawes
A: 

1 - undo-redo

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

3 - syntax highlighting

Luc M
A: 

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

persiflage