Tech Life Arguing is pointless

Editor Religion

Your text editor is religion.

You start ignorant… wondering what all the fuss is about and then you either discover or are forced into a particular editor. In time, you grow comfortable with it, like your favorite type of pen, and that’s it… you’re done. You are the wizard of Emacs or the king of bbedit. Arguing with you about moving to a different editor is pointless. Might as well compare and contrast reasons to breathe. (I’m for it)

My first conversion to (hold your breath) Wordstar. This was an editor which ran many years ago on CP/M. I would literally reboot my Apple ] [ (equipped with my swank CP/M hardware card) in order to get to my word processor. Who cared none of my other apps ran in CP/M… I knew Wordstar… and still do today. Start a block = ^KB. End a block = ^KK. You thought I was kidding.

When forced to abandon my Apple ][ for a PC, Wordstar was there and continued to be there as early versions of Windows arrived. I did most of early college work inside a DOS window running Wordstar even as Wordperfect, Lotus Ami Pro, and early versions of Microsoft Word were kicking the shit out of Wordstar. Nope. Don’t care. I fly Wordstar.

It’s entirely possible if I wasn’t afflicted with N.A.D.D. that I’d be running Wordstar in a Virtual PC window on my Mac right now. You would never believe me how many people on this planet are still using DOS-based versions of WordPerfect right this very second… so I’m not going to tell you… you probably know one.

But I am a geek and geeks evolve because if they don’t they become a joke.

Wordstar was dead and graphical user interfaces were the shit, so I spent a brief time courting relevant versions of Microsoft Word within Windows 95, but I quickly learned this wasn’t going to work in my industry. See, you can’t code in Word. Well, you can, but your code looks horrible because graphical user interfaces do a splendid job of forcing look and feel down your throat, but as a programmer all you care about is the precision of the content. The words.

At the time, I was working at Borland and the engineering community used Brief. Like WordPerfect, Brief used an obscure set of keystrokes to get the done. Like WordPerfect, Brief went out of it’s way to get the hell out of your way which, given real estate situation with text based non-GUI editors, was a plus. Unlike WordStar, I don’t remember much of these keystrokes although I suspect Ctrl-Arrow is a holdover from those days.

When I left Borland for Netscape, I kept Brief nearby mainly because another tool, Coderwright, provided a Windows-based programmer’s editor as well Brief keyboard emulation. I still have my cwright.ini preferences sitting around somewhere that made Codewright look EXACTLY like my favorite DOS-based editor. Black background with stunningly annoying syntax highlighting. Further proof that all you need to see to understand the origin story of a programmer is what colored background they use in their editor: Black = Unix or DOS. White = Windows / Mac.

After Netscape, the shit hit the fan. I turned into a manager. I was now tweaking email sorting rules rather than highlighting syntax. I kept Codewright around for grins, but I was never really using it. For writing I was using Word, getting lost in font selection, page spacing, and other irrelevant formatting tasks that took me away from what mattered. The words.

Fast forward to my conversion to the Mac. Amongst the promise of Unix was the promise of a new religion. They say the first application developed for Mac OS X was BBEdit. The buzz about BBEdit is actually is loud enough to hear about in Windows land. Folks ask, “Do they have BBEdit for the PC?” They ask knowing nothing about the actual application, they ask because the reverence for BBEdit sounds like religion and that means it must be important.

I’m writing this article in BBEdit right this moment and I’m here to ask you, “What’s the big deal?” Heresy.

I want the religion. Honest. I swear I want to love BBEdit. I’m still a manager and maybe that’s my problem… I don’t have a real word use case for an editor. It does everything I ask for it. It’s aggregated common meta-commands as tools right on the main menu. I can tweak the keystrokes to my heart’s content, but I’m still waiting for my BBEdit holy shit moment that demonstrates it’s greatness.

Perhaps it’s where I came from. A requirement for a editor may come from my Wordstar days… it’s gotta be a chore to learn how to use. I’ve gotta have mental skin in the game. Using that logic, you’re going to point me at Emacs to which I’m going to respond, “I want a new text editor religion, not a new religion, a new language, and a new operating system”.

Not an Emacs guys, Rands? Then Vi is for you. Obscure commands. Black background. Just what the doctored ordered. Right? Nope. Paragraph #6: “Geeks evolve lest they become a joke” and Vi pre-dates all my other editor excursions… I want something new. A good religion doesn’t tell you how things were, they tell you how things are going to be.

32 Responses

  1. The only editor I know of right now that’s gonna give you that HS moment is SubEthaEdit. As an actual *editor*, it’s fairly limited alongside the ones you’ve mentioned. The collaborative editing feature is worth the admission price alone. And the price is $0.

    http://www.codingmonkeys.de/subethaedit/

  2. I’ll back up Fraser on SubEthaEdit: I use it for editing all kinds of text and for my money (or lack thereof) it’s right there keeping up with BBEdit, just lacking a dumbass instant-HTML dropdown menu. The collaborative editing is neat and novel and the WebKit-based page preview is essential for web design.

    Apple XCode is still my IDE of choice on OS X, and I actually quite like its built-in editor. I only use Emacs and Vi/Vim when physically coerced. It’s not the 1970s anymore.

    I find it hard to have HS moments with most of today’s text editors. It could be that such software has become so ubiquitous as to no longer be exciting. But then, that just means there’s some way of doing things out there that we don’t yet know will knock our socks off.

  3. Kevin 21 years ago

    Good god, a fellow WordStar man. I thought I was the only one. I started using it in the 80’s, and when I finally logged onto my first unix box, someone told me to type ‘joe’ to edit files – and lo and behold, all of my favorite WordStar commands worked. It was like visiting another planet and discovering that all of the aliens speak English but with a weird accent.

    I worked for lawyers all the way up till 1999, and the word processor of choice among all of the other lawyers I talked to was still Wordperfect 5.1 for DOS. Unbelievable. And yes, I’ll say that Wordperfect was a heaping steaming pile compared to Wordstar.

    My father always regales me with tales of having to change the actual source code to Wordstar under CP/M on the Osbourne to even make it run. Custom jobbin’…

    Kevin

  4. Eli Sarver 21 years ago

    I, too, have used WordStar, back in the Kay-Pro II days. Then I graduated to edit (DOS) and WordPerfect (DOS, not Windows) before becoming a corporate bitch. I mainly use a smattering of programs, but the main staples are notepad (ini files) vim (xml editing), TeXnIc Center (TeX/LaTeX), Textpad (regexp in a visual manner) and Word (above mentioned ‘bitch-work’)

    My preferences? I prefer vim because I use it on the most machines. It’s on my iMac, my FreeBSD server, and my work desktop. Second is TeXnIc Center, but that’s only when I’m writing tech docs. I’m still trying to sell the guys in my department on LaTeX (mainly due to word’s fuckery with one’s content)

  5. metacosm 21 years ago

    SubEthaEdit for your editor religion needs

    Having just rediscovered RinR, I see today that Rands just posted on editor religion… I haven’t used BBEdit much myself but I did fail to see what the big deal about it. My current editor of fave is SubEthaEdit. Sure…

  6. Lloyd 21 years ago

    I must point you at Vim: http://www.vim.org

    Yes, it is a VI clone, but it has been brought into the 21st century with full GUI goodness, all kinds of great features, and is /extremely/ customizable.

    Just recently on the OS X port side ( http://macvim.swdev.org/OSX/ ) they’ve succeeded in implementing anti-aliasing on their carbon app, here’s a screenshot: http://www.lloydslounge.org/antialias-vim.tiff

    This is what I use for all of my coding. To argue your paragraph #6, Vim is an evolved version of VI.

    I’m not a zealot; I believe the the text editor one uses is more of a personal thing. Everyone works differently. I’ve used emacs myself and I agree that operating system style bloat is not for me.

    In my first computer science class in college our professor required us to use VI to write all of our code (Pascal at the time). As evil and painful a process it was at that time, once I got past the massive learning curve I edited code faster then I ever had before. Now it is almost painful for me to use any other editor because it feels like swimming through molasses.

    I’ll be the first to admit that it’s not for everyone but don’t dismiss it so easily. Editing code becomes an almost zen-like experience. Sorry I’m getting all mushy.

    Here’s a few links:

    http://www.vim.org/tips/tip.php?tip_id=305 all the good stuff to know

    http://www.vim.org/scripts/script.php?script_id=42 the essential buffer explorer script

    http://www.vim.org/scripts/script.php?script_id=39 elegant XML tag matching script

    http://www.vim.org/scripts/script.php?script_id=273 excellent source code browser

    http://jmcpherson.org/editing.html a nice mid-level tutorial

  7. Floid 21 years ago

    “My father always regales me with tales of having to change the actual source code to Wordstar under CP/M on the Osbourne to even make it run. Custom jobbin’…”

    More impressive, considering it was written entirely in assembler.

    BUT, from my memories of 5.x, the 5.x “setup” utility did itself patch the machine code of the executable.

    Ridiculous. But elegant. And it worked.

    Wordstar never quite did it for me, though; it did too much. Or rather, it did the ’70s/’80s version of Doing Too Much, the way OpenOffice does now. And the file format was just a little retarded.

    Being a BBS kid, I tried a bunch of obscure stuff, vaguely yearned for WYSIWYG for a while, “Breeze” and some other also-ran shareware from the day.

    Then I found VDE.

    Take everything you *actually* used Wordstar for, everything you usually use vi for, and cram it into a small editor with Wordstar and DOS-sane keyboard assignments. (For instance, the arrow keys actually move the cursor. Who knew?) Make the developer the-right-kind-of-insane enough to offer a HP95LX patch to the binary, etc. Files that came out looking like plain ASCII except for a few control codes embedded in.

    Only piece of shareware I ever got around to paying for; managed to fire off a registration before I got to college and was tricked out of using it. Sadly, while it had its devoted-crackhead fanbase, and spawned a vague effort at a UNIX workalike, that never happened. And my professors demanded 12 point Arial or bust, which could explain why the quality of my writing dropped precipitously. (WYSIWYG refugee-choice: IBM Works under OS/2. Why? Because I was lazy, used OS/2, and it worked. Then we got our port of StarOffice, and it was Good, but I was too busy being a nervous wreck of a dropping-out fag to really use it.)

    So, uh, great, it’s 2004. Looking for a sane editor. After about 4 years of UNIX, vi seems to be the constant… but the way edlin was under DOS, so I’m not sure if that’s something to be proud of. Want something that can conceivably run across text-ssh console and in pretty local GUI fashion; emacs. Hell, want to learn how to put up with emacs, text-editing operating system doesn’t sound so bad. But emacs have fatal flaw: text not scroll line-by-line.

    Me grow up on glass teletype. Me not need computer emulate piece of paper. Want line-by-line scrolling without screen constantly ‘jumping around’ compared to brain’s expectation. But ironically, it was hacked together that way in the first place to get around the limitations of slow terminals… and the counterhacks to return it to line-by-line mode don’t work very predictably. (In other words, hold down whatever the scroll-down key is these days; if you’re like me, you found a way to trick it to accept line-by-line movement in that regard, but oops… scroll enough to fill some buffer somewhere with movement commands, and it’ll decide your teletype is broken and fling you back to the start of the document. Or something braindead like that. Of course, everyone else in the Religion considers the standard behavior a benefit of emacs, and doesn’t know how to debug the control knobs they put in to let me get that far in the first place.)

  8. Fat Larry 21 years ago

    If you don’t use vi, you are a homosexual. Except if you use emacs, then you’re practically a pedophile. Only Michael Jackson and R. Kelly use emacs. vim is acceptable but you should know this makes you bi-curious.

  9. I don’t get it. I can make BBEdit display a black background and “stunningly-annoying syntax highlighting” inside of five minutes. If I can run a pink background, you can run a black.

  10. The point is: BBEdit is fine. It’s a good editor, it does everything I ask of it, but it’s blah… it’s blah on the canvas that is Mac OS X.

    Perhaps the art of the editor died, the evolution has stopped? I doubt it. Look at the SubEthaEdit. There’s a step forward.

  11. Ryvar 21 years ago

    Nano. Because I want the glorious simplicity of MS-DOS Edit (plus quite a bit of optional stuff that never intrudes) in a *nix environment. If you loved DOS as a kid and hate vi/vim/emacs, nano is right up your alley – the home, end, page up and page down keys work the way you’d expect them to. There are no insert/replace/command ‘modes’, delete and backspace do what you’d expect . . .

  12. J Whitlock 21 years ago

    ..Except that nano will rape your config files unless you remember to turn it on without auto-word wrap. Other than that, great get-it-done editor.

    For Windows, I’m quite happy with TextPad. Sure, it’s missing some great features, but I love RegEx searches and replaces, syntax highlighting, the document selector, and auto-updating documents. If you need more that that, you have to hit the command line tools, anyway.

  13. Thanks, Ryvar, for the heads up on Nano. I just loaded it and though I couldn’t make it find my .nanorc file in Windows without installing Cygwin, it looks pretty nice. My ideal editor would be Notepad with only a few extra perks:

    – Autoindentation

    – Spell checking

    – Brace matching

    – Syntax highlighting

    – Multiple file editing, including tree-spanning find-and-replace

    – Block selection

    Nano seems to fit the bill for the most part, but I’ve already noticed some shortcomings:

    – no mouse support in Windows

    – shift-(directional key) doesn’t select text

    – ctrl-home and -end don’t go to the beginning and end of the file

    – screwy handling of the extra numerical pad symbols (like /, -, and +)

    Obviously the modifier keys I’m used to are the result of using Windows for so long, but is there anything out there like what I’ve described? I already use mdiNotepad ( http://koti.mbnet.fi/~fidgety/ ), but that’s got its own set of problems.

  14. Too bad you can’t edit comments… the other requirement I’ve got for a text editor is that I not have to pay for it. I mean, c’mon, it’s a text editor, not a music-editing suite.

  15. Ryvar 21 years ago

    Couple quick responses:

    Three ways to disable wrapping in nano – permanently at compile time with one of the ./configure options (I believe it’s –no-wrapping-as-root, but you should double-check that), starting with the -w argument (ie nano -w crap.txt), and finally just hitting alt-w while editing. As long as you hit alt-w BEFORE modifying config file lines, it won’t rape them. It only fires up the wrapping function when you actively type in a line.

    Jadrian: sadly, Nano is meant to basically be the closest thing to MS-DOS edit for *nix possible, and thus while it’s probably the most user-friendly text editor on the unix commandline (useful when modifying your .conf files on your commandline-only OpenBSD firewall), there are other, better products for Windows. I will mention though, that I’ve personally found making minor modifications to the source code far easier with nano than with vi – I haven’t and won’t ever even attempt such with emacs.

  16. Ah wordstar. (You know there’s a wordstar mode for emacs, right?) Supporting a new terminal type for WordStar mean patching little machine code stubs, though there was a tool for it if you just had escape sequences to fill in.

    The cool trick was that you could subvert this – I had a two-window wordstar at one point, so I could read one buffer in the upper couple of lines of the screen and pop back and forth to the “real” wordstar below, which had been “fooled” into thinking the screen origin was a couple of lines lower… and yes, in CP/M, on an IMSAI 🙂

    If you’re looking for app-level religion, you might look at Tinderbox, or OpenCroquet – editors are starting to get post-religious, at this point…

  17. I’d be remiss to not point out my favourite text editor: EditPad – http://www.editpadpro.com/editpadlite.html

    As a DOS kid this program really appealed to me when I first gave it a try a few years back.

    You need to set your background to black since it comes as white as default. But once you set all your prefferences you save that little INI and keep using it forever. I’ve been a happy user for years. And they recently released a Linux version that works exactly like the windows one.

    One of my favourite features is that it has one window, with the ability to open an unlimited ammount of documents in their own tabs. The ability to search and replace accross all open documents at once has bailed me out of hours of work more than once.

  18. xfrosch 21 years ago

    I won’t bore you with my long, twisted tale of editor schizophrenia. I started out with TECO, write code with emacs, and tweak existing text with vi. I have finally weaned myself from Word to OpenOffice for document processing, shortcomings of the latter notwithstanding, although my all-time favorite wordprocessor was FrameMaker on SunOS.

    What I am here to tell you is that of the dozen or so editors I have installed on my mac, my favorite is jedit. emacs and vi just aren’t much fun on OS X, although I’ve gone to the trouble of hacking together a DropScript wrapper for xemacs 21.5, and that improves things a little.

    jedit is a double-clickable .jar, which makes it easy to start, although one of the things on my to-do list is to come up with enough glue to make it appear in Finder right-click menus.

  19. PKMousie 21 years ago

    If you’re not looking to word process or abuse fonts, don’t care about Mac compatability, or code for a living, take a look at Visual SlickEdit. It’s the most useful, customizable, and efficient programmer’s editor I’ve ever gotten my little code-monkey paws on.

    Let me count the ways I love thee, SlickEdit:

    – Editor emulation including CUA, Brief, Epsilon, VI, Emacs, Visual C++, ISPF, and CodeWarrior

    – Built-in support for editing 44 languages, with color-coded syntax hilighting for 26 of them (and you can easily implement your own!)

    – Compatability with over 60 text encoding formats

    – Directly edit and build Visual Studio .NET, Visual C++, and JBuilder projects

    – Directory-based projects

    – Integrates with ClearCase, CVS, PVCS, Perforce, SourceSafe, TLIB RCS, and SCCS version control

    – Mouse-enabled, drag and drop to cut and paste

    – Single commands for block selection, by function, for loop, if statement, etc.

    – COLUMN selection, cut, and paste

    – Autocompletion, parameter listing, and class browsing driven by comprehensive project and library tagging, BEFORE building

    – Hex editing

    – Macros and GUI extension via interal Slick-C scripting

    – Pastes code at appropriate indent level for curent block! *drool*

    – Java, GNU C/C++ debugging

    – Selective text display, collapsing functions and blocks of code

    – Spell checking

    – Code beautification

    – Edit over FTP

    – EVERYTHING is customizable and configurable!

    Can you feel my fervor?

    Convert or die.

  20. epsilonzero 21 years ago

    emacs emacs emacs. and I don’t mean the terminal-only emacs that comes with osx.

    find an emacs build with a gui. take a week to figure it out. start with the tutorial that’s built in. find a guru to teach you about font-lock-mode and any application specific modes. (examples: built in compilation modes, code formatting, debugging, latex generation, directory editting, version control.) iswitchb is godly.

    if you’re programming oriented, get a tutorial on the basics of elisp and learn the help keys for querying key bindings, functions, and variables.

    if you’re immediately annoyed by something, ask your guru for advice.

  21. Adam recently blogged about an

    Adam recently blogged about an article at Rands in Repose regarding the religiosity of the text editor debates, which seems to be something of a Unix thing. I’ve seen Unix aficinados bicker incessantly about vi, pico, emacs and their relative merits an…

  22. I haven’t had a chance to play with it in great detail (yet), but I recently discovered Araneae ( http://www.araneae.com/ ) which seems to be a rather good (and free) Windows editor.

  23. Update: I just looked at it properly for the first time since downloading, and realised it’s actually a text/HTML editor. Not a bad one actually, but syntax highlighting seems to be limited to HTML tags.

  24. Nobody 21 years ago

    Emacs. The one true editor.

    Actually, emacs is the one true development environment. VI is the one true editor. Which is why I use Viper mode in emacs, which give you the superior keymappings of VI with the deep zen of emacs.

    Obey.

    :wq

  25. I’m all about vi/vim. In-line regex can’t be beat. In-line shell commands rock (for when you’re editing python Web apps and have to restart apache). Commands that make no sense validate one’s sense of being able to do that which GUI weenies cannot. I tried emacs for about five minutes one day and got as far as running the program and closing it. Good thing it was the GUI version I could X out, as I might’ve had to open up a new terminal to kill it otherwise. Maybe I should go for emacs if being better than the GUI weenies is so important to me.

  26. What about a Java-based (sort of) Emacs clone, with its own lisp interpreter?

    Syntax highlighting, XML support (parsing, validation, etc.), a class browser for most languages, lots of configuration tweaks, oh it even does email and web browsing…..

    http://www.armedbear.org

  27. Le Roux 21 years ago

    I don’t like vim, but I keep going back to it. Probably because it is always there (on linux) and I use terminals a lot, so it is quick to just view/edit a config file. Also – it syntax hilights just about every file format known to man.

    At work I use homesite+ for all my web-coding needs. I like the syntax hilighting, tabs for open files (this has become an absolute necessity) and the find/replace dialogs/functionality. (removed all the silly icon/button toolbars and things because I never click them and rather remember the shortcut keys)

    A while back I briefly fell in love with JEdit. It is good at syntax hilighting, I like the keyboard shortcuts and it has plugins for lots of stuff (like tabs for open windows, stuff for xml and related functionality, etc.) In fact – the plugin functionality is very very impressive. It quickly became the reason to install java. But it looks crap in linux, because swing can’t look like my gtk+2 theme and it doesn’t fit in with gnome2.

    Now I started using bluefish. Kindof like homesite . Will see how it goes. For quick edits I still prefer vim, though.

    I wish someone will make a jedit style editor for gnome2. That would be my dream come true. Something that would be perfect for php (and html + css) and python coding. Then I would be happy.

  28. I use a mac switching daily from 9 (work) to X (home) and have not found any text editor as useful as BBEdit 7. Being able to save and reuse Grep expressions makes BBEdit almost unbeatable.

  29. Editor Religion

    “Your text editor is religion. You start ignorant… wondering what all the fuss is about and then you either discover or are forced into a particular editor. In time, you grow comfortable with it, like your favorite type of pen,…

  30. The test for me has always been whether the editor supports column selection.

    Slickedit does (and I use it at work) – but at home, on my Mac, what do I use ?

    Any advice ?

    thx

  31. Anyone know of an editor in which you can hold down the control key and select multiple instances of text?

    Multiple streams…

    I use block/rectangle/column selection a lot in those situations where you need it, but a lot of times that just isn’t enough.

    In OpenOffice or some word processors (office XP i think) you can hold down the control key and you can select multiple instances or streams of text… but i’ve never seen a programmers editor or editor do this.

    Also useful is when you do searches:

    -find multiple instances of what you are searching for, rather than just one instance

    Code folding needs to be “user defined”.. we can’t have JUST code folding on parenthesis.. sometimes we the coder need to define where we want folding.

    Another thing I’d like is the ability to highlight text and make notes. Many editors have bookmarks – but we need highlighting too. I want to highlight a certain area of text in real time (not syntax highlighting, just my own highlighting for my own notes).

    Anyone know of an editor with some of the above features?

    It seems to me that most editors are missing one feature or another…One has one nice feature that the other should have. It is never a case where one editor blows the other away outright.

  32. Eddy Walet 19 years ago

    Interestingly, I recently read an article about HIG (Human Interface Guidelines), but that article was targeting one-button mice versus other mice. You see, one of the reasons to love BBEdit is that it provides the same keystrokes as MPW, Metrowerks and XCode and this is more or less standard for the OSX platform. Word, as an example, has different keystrokes for similar tasks, making it a pain to use.

    Other reasons to love BBEdit is that it uses so many interface features from the Mac itself: drop a folder to get an ls like listing, using the proxy icon, dragging content for move or copy actions, open and save dialogs. And it opens almost anything, even if it is binary, so you can get an impression of what a file is about.

    But again, it is the similarities in use it shares with other major editors (even Mail or AppleWorks) that makes it such a solid product. However, if you like other keystrokes, you can set them. And products like MetroWerks and XCode will allow you to use BBEdit as external editor.

    With FTP, WebDAV, Windows sharing, NFS and other alternatives can a Mac application open/save files from/to other platforms. Editors like BBEdit can so extend their usefullness. (BBEdit understands different line-endings to make it even easier for cross-platform use, a feature many Windows or Unix editors seem to miss.)

    As an independent software developer, I do all my coding on a Mac (mostly MetroWerks) even for Windows development or web development. BBEdit I use for any file that is not code.

    So, I see editor religion and raise it to platform religion. Any takers?