Monday Question: What is your text editor, and why?

Posted by larrywright

Monday Questions is a recurring series on Approaching Normal. For more questions like this, please visit the archives.

The text editor is the programmer’s main tool. The best programmers I know are masters of their chosen editor, whatever that might be. Knowing how to be productive with your editor can make the difference between a good developer and a great developer. So today, I’m asking you to share with us what your favorite text editor is and why.

My editor of choice is Emacs. It’s the first “real” editor that I ever bothered to learn well. I started learning it right after reading The Pragmatic Programmer for the first time. I have a love/hate relationship with Emacs. It’s an amazingly powerful editor – there’s very little that it can’t do. Unfortunately, it’s as ugly as they come and a pain to customize. Lisp is cool in the same sense that Latin is cool. Beautiful language, but hardly anyone speaks it. I had hoped that when I made the move to OS X, I would switch to TextMate. I tried it, and even bought the Peepcode screencast on Textmate. In the end though, I couldn’t give up Emacs. It has too many features that I rely on that Textmate just doesn’t have, like split buffer windows and dired mode.

As always, post your answer in the comments below.

Subscribe to Approaching Normal today

Comments

Leave a response

  1. Nathan L SmithJanuary 28, 2008 @ 01:12 PM

    Vim.

    Why? It’s light weight, works on every platform I use, and works for every language I program in. I know my way around it, but still can learn new commands after 14 years of use.

    http://nlsmith.com/vim/

  2. JeffJanuary 28, 2008 @ 02:59 PM

    Depends on what I’m doing.

    Mostly, I prefer emacs. I like the having the ability to easily customize it’s behavior. It has intelligent modes for every programming language I use. There is always something cool to learn about it. Mostly I use this when I’m programming, writing docs, updating configuration, or just about anything else when I’m going to be in the editor a lot (ie for a long time). Some things I miss in emacs that other editors have: code completion, code templates (snippets.el seems to have what I want, I just don’t know (yet) how to use it to create the snippets I want), context sensitive help to talk directly to man/web pages (although SLIME has most of this covered for lisp programming)

    Vim, it’s a great tool. It’s light, it’s fast, it has some extremely nice features, and it continues to be improved. I use this editor when I’m going to be in and out of files a lot. You just can’t beat it. Some things I don’t like about vim: the biggest is getting vim to tell me some key combination I don’t know,(the most recent one I learned is ‘’ (try it – you *love it) and another is gd (another one you’ll love) finding these keys was an accident when I was reading someone’s blog), smart modes that give you different kinds of indentation based on the type of code being edited.

    jEdit. It’s a nice up-and-comer. It has a lot of interesting plugins, development in it is fast. It still lacks a lot of the features I like about emacs, but seems simple enough to extend. I’m currently using this one when I do my rails programming, mostly as an experiment with the editor than any overwhelming feature. I do like the rails environment, the ruby doc and code completion are nice-to-haves. Some things I don’t like about jEdit, it’s difficult to port settings from one computer to another, especially when all you really want to migrate is your keyboard settings. Maybe I just haven’t found the correct incantation. The keyboarding for the default installation is nowhere near as efficient as emacs or vim.

  3. EdvardJanuary 29, 2008 @ 05:12 AM

    I’ve used for Emacs over 10 years. Now, I can understand the OP: if I had a mac, I’d like to learn TextMate too, as it seems to be the de facto standard among Rails developers.

    However, I thought to give a try to Vim too. The idea of simple, short keyboard shortcuts fascinate me, and I’m rather ok with it so far; especially rails.vim is quite nice.

    Few complaints about vim:
    • In Emacs, you can do things quicker if you fuss a lot and don’t know exactly yet what you are going to do. In Vim this is harder, because you end up switching a lot between insert/edit mode. I guess Vim is better for people who think thoroughly before they act :)
    • Vim seems to lack frames in the same sense as Emacs. I mean, I know about split window and stuff, but I’d like to have a separate, detached frame in a GUI environment where I can move the frame/window wherever I like, just like with Emacs.

    However, for many basic tasks Vim seems to be more nice than Emacs, because keyboard shortcuts are shorter. Moreover, rails.vim seems more mature and powerful than respective Emacs rails mode (http://dima-exe.ru/rails-on-emacs).

    Yet I’m not sure whether to move to Vim or stay with Emacs. It sure is powerful, but customizing it is a pain (I use it in 5 different machines/OSes, so I have to make .emacs customizations work both in Windows and Linux—usually you can just ignore it, but not always).

  4. Yousef S.January 29, 2008 @ 08:33 AM

    Well actually this question is my long time dilemma, I had searched for my editor of choice which need to be simple, nice, fast, and powerful, several times, yet i haven’t found any. I agree that TextMate is the best but I’m using Windows and i don’t like e-texteditor (TextMate windows clone) it’s somehow buggy.

    There are powerful editors around, but every one of them are either slow, not handy, ugly or expensive. And i prefer something more user friendly than those hardcore Unix like editors.

    Currently i’m using RJ Texteditor and e-texteditor but i wondering why isn’t there any better one. :(

    Some features which i love to have in my editor :

    - Seamless Syntax Highlighting - Inline Search - Auto Close Blocks or Tags - Block Highlight - Expand and Collapse Blocks - Goto Symbol (Functions, Classes, Styles,..) - Goto File (Quick open file in a project) - UTF-8 Support - Nice, Minimal, Simple and Precise Interface - Auto Completion or some kind of simple IntelliSense - Find & Replace in files - FTP Support like how Dreamweaver does - MultiTab Support - MultiPanel Support - Handy and Customizable Keyboard Shortcuts - Addons and Themes - An Optional Dark (Negative) Theme! - No Splash Screen!!

    You can take Intellij IDEA as the base ;)

  5. David BockJanuary 29, 2008 @ 08:56 AM

    Vim.

    In ‘96-’97, I had a horrible experience with Visual Cafe (and SourceSafe, but that is another story). As a result, I abandoned all gui tools as a crutch, embraced many of the principles from PragProg (including ‘learn one editor well’), and began my love affair with the bash shell. My initial choice between embracing vim vs. emacs was probably a coin flip, but I’m happy with it today. With tools like ctags, multiple editor panels, and a half dozen command line tools, I can keep up with just about any IDE.

    That said, I have been using TextMate a LOT for the past year or so, mainly because I swallowed the red pill and have been doing a lot of rails work.

  6. Steven RigneyJanuary 29, 2008 @ 01:22 PM

    I do a lot with plain text files, html, and xml. I don’t care for most of the more sophisticated text editors. I had tried a lot of them with text highliting for Java, html, asp. Finally, work gave me a copy of UltraEdit. I loved it almost immediately, it had everything I was looking for. I started digging into the shortcuts and additional features it has, and found that everything that I wanted to do I could. There have been a few things that couldn’t be handled immediately, but it’s ability to record a macro and repeat it has pretty much allowed me to do all automation of tasks that I prefer. I even bought a copy for my home computer.

  7. Andres N. KievskyJanuary 29, 2008 @ 11:10 PM

    I’ve been using a combination of GNU Emacs, Notepad++ and (g?)vi(m?) for quite a while. It works pretty well but it’s nowhere as good as I expect it to be. This is 2008, after all! We shouldn’t have clunky interfaces, we should have software that just does what I mean. There’s lots to be said about TextMate, also, and a lot of ground left unexplored. Here are some of my thoughts on the subject of the available editors and what we can do to create an ideal, perfect text editor: http://fixingsoftware.blogspot.com/2007/12/perfect-text-editor.html