113 comments

[ 3.8 ms ] story [ 179 ms ] thread
This article is a little too light on details.

In particular Kod seems to have stagnated completely, there has been no updates to the source tree since June 20th, and even before that the updates were very light. Kod is an interesting idea, but in it's current state I didn't find it very usable.

100% agree with his conclusion. For textmate fans who havent been able to make the jump to vim or emacs, try sublime text 2. It blows away textmate in every dept, and is incredibly extendable. Theres nothing out there thats more powerful (aside from vim/emacs)
Even in the documentation department?
Well, nearly all settings are documented in:

    Packages/Default/*.sublime-settings
All default keyboard shortcuts are in:

    Packages/Default/*.sublime-keymap
So, yes, there is plenty of documentation, but not on the website ;).
The documentation isn't terrible, but it is certainly lacking. After it escapes beta I imagine things will progress in the documentation department.
I would just like to throw in that the major obstacle to my finding an editor on Mac OS X has been the pricetag involved with most of the more popular editors. Sure, $60 isn't much if you already have a stable programming job, but I am a college student (which is financially the exact opposite of a stable programming job), and as a college student I am generally highly adverse to paying for things (especially software, since I "grew up" as a programmer among Linux and OSS).

That said, TextWrangler is a decent option if you aren't in the mood to spend money. The only thing I miss about other editors from TextWrangler is an actual file browser that works like Gedit's instead of "you can only have one file open from the file browser at once."

(comment deleted)
Seriously, if you want value of money, learn vim or emacs, they kick any $60 worth editors.
Or you know, (re)install linux and use any of the great text editors available on that platform. I think linux is the best platform for CS types in college.
Like vim and emacs.
Since vim and emacs run fine on OS X, do you mean GUI ones? I think Linux is the worst platform in terms of GUI experience.
why?

also kate is a very nice editor gui editor(mainly linux but probably runs on os x/windows -because of kde portability)

That's just my experience that compared to Windows and especially OS X, GUI on Linux is typically ugly and unrefined.

It's understandable given the more fragmented, programmer-centric ecosystem.

It's hardly reasonable to recommend changing OSes just to use a different text editor.
I respectfully disagree. I've been a Vim user for 10 years. I've written half a dozen plugins and customized another 15 or so in addition to writing several syntax/indent files. I decided to take a look at Sublime last week when I noticed that it had a vim mode coming from the author (important in that it has a chance of not sucking) that looked like a work in progress but at a reasonable state. I've since paid my $60 and am in the process of switching despite the vi emulation's flaws irritating me to no end.

Advantages:

- Scripting system is in Python and is a joy to work with. Easy things are easy. Hard things seem acheivable but I haven't done serious plugin work. You can poke around/debug things using the built in Python REPL. The things I have tried to do are considerably easier than they are in Vim.

- Scope system. You can accomplish a significant set of activities with keybindings and scopes that would require a vim plugin. I've wanted scopes in Vim since I read about them when Textmate was announced. There isn't a technical reason it's not doable but it would require a complete rewrite of all the syntax files to be consistently useful. Enables things like go-to-function, select scope, and fold tag attributes to work without filetype specific plugins.

- Native Snippets. You can get snippets in Vim (I've contributed patches to both plugins) but nested placeholders and nested snippets just don't work, which really limits how far you can push snippets. Also Vim snippets can't interact with the selection and snippets containing indention tend to work incorrectly/interact with the indent script strangely. The only downside is that it's easier to invoke code from SnipMate than it is in Sublime. Being able to do snippets directly from keybinds cuts out another small class of plugins and due to the interaction between scopes, snippets, and keybinds this class is larger than you'd think.

- True multi-cursor. Current uses are fairly mundane but I've wanted a programmable editor with multi cursor ever since I read the MIT whitepapers on generalized cursors a couple years ago. You can do really neat things with generalized multicursor but not worth writing my own editor. In current form, multiple cursors have a neat interaction with vim normal mode but I haven't figured out a solid set of techniques for generating multiple cursors where I want them without mouseclicks and without getting fouled up by visual mode.

- Saves state between quit/open.

- Anything in the JSON configuration format is immediately applied on save, which makes tweaking a lot more convenient.

Disadvantages:

- Vi mode flaws make me crazy. Off the top of my head:

    - No ~ implemented
    - % doesn't work correctly with edit operators and 
      crosses newlines when it searches
    - % doesn't jump between start/end tags
    - No [c-i]/[c-o]
    - Text objects that cross lines seem to be getting 
      set to linewise for subsequent lines
    - no ex commands, the lack of s// is particularly irritating
    - Selections intersect with visual/command/insert mode in
      fun and exciting ways. I'm not sure what the right 
      behavior is but I know I have a mode error almost every
      time I wind up with a selection.
    - Various commands helpfully (if you're in insert mode)
      highlight text, see above
    - No blockwise visual
    - Intermittent off-by-one errors (e.g. I've gotten 
      'for<Esc>..' -> 'fofofor' but now can't replicate)
- Hand editing JSON for configuration sucks.

- Editing XML plists for syntax, snippets, and color schemes sucks more. And they don't autoload.

- Does not mantain cursor position across file close/open.

- No \zs \ze in regex engine. You can accomplish the same thing with more typing but I miss them.

- Not already installed on every posix environment, can't use over ssh

- Docs are comparatively poor and are on web instead of editor local.

- Not a lot of stuff available for various languages/environments means writing your own.

The problems are...

"Sublime Text 2 may be downloaded and evaluated for free, however a license must be purchased for continued use. There is currently no enforced time limit for the evaluation."

Apart from (UNREGISTERED) in the title and a rare (daily?) nag screen, there's nothing preventing you from using Sublime Text 2 without buying it.

That depends whether you have morals or not.
Agree with the conclusion. I used TextMate for a while. Then I came to Sublime Text 2 and think it's the best editor ever.
The Sublime Text 2 developer is wonderfully responsive. I've emailed suggestions twice and they were both implemented and in short order.

I was disappointed that discussions on the Mac-centric 5by5 podcast network framed BBEdit as the only place to go from TextMate. Granted, BBEdit has a history of not being abandoned, but it's clearly near the end of its evolution while bright new things like Sublime are blazing forward.

BBEdit: I keep hoping "the next version" brings it up to speed.
Which Mac-centric 5by5 podcast are you talking about? If it's "The Talk Show" keep in mind that John Gruber used to work for Bare Bones Software (the makers of BBEdit), so take his recommendation with a grain of salt.

I'll repeat myself from other comments here on HN. Sublime Text 2 is amazing and worth every penny of the $59 it costs.

IIRC Hypercritical, Build & Analyze and Back to Work. 5by5 is packed with Mac nerds!

I stopped subscribing to The Talk Show during its original run because John's manner was so lethargic. I like his site but not his podcast.

Sublime Text 2 is the cat's ass. Oh, how I've longed for multi-file editing in Textmate for so many years...
I agree about the short shrift Sublime Text 2 was given on 5by5. I'd expect that those hosts who are happy with BBEdit or whatever will sing their editor's praises, but it was more annoying that Marco's investigation of TextMate alternatives was effectively to try BBEdit for a few days and then go back to TM1.
(comment deleted)
(comment deleted)
I've been on a Mac a few years and tried a few editors, so (for what it's worth) here's my 2c. Main use case is scripting and Rails development.

Smultron: Used this a bit. not bad but I didn't really take to it. Missing a number of features

Vi: still use it regularly, but I don't have much skill with it. Extra handy for quick editing of a single file (I use the command line a lot so vi is convenient)

Aquamacs/Emacs: Gave this a shot but really had no idea how to use it. Gave up in the end

Netbeans: Been using this for years and found it mostly the best fir for my needs. Looked around when Orace took it over and ended up with...

Rubymine: Excellent. Great fit for me, although I'm still on 3.1 as the newer releases run like molasses on my aging macbook. It's a bit heavyweight, but it has a ton of really useful features.

Kod: Showed great promise as a Scite replacement but seems to have been abandoned. (Scite was what I used in Windows for years. fantastic once you change the default fonts)

Texmate: Used the demo, couldn't see what it offered over netbeans

GEdit: Used this all the time in Linux and was surprised to find it runs fine out of the box on the Mac! Great for reading extra large files like long logs etc.

Textwrangler: For some reason I really can't get to liking this. I give it a shot again every now and then but it just doesn't seem to work the way I do

Coda: Looks lovely but I just couldn't get over the price.

> GEdit: Used this all the time in Linux and was surprised to find it runs fine out of the box on the Mac! Great for reading extra large files like long logs etc.

Does Gedit for require X11?

There is/was a Cocoa build of GTK, so it's probably possible to build it.
I honestly have no idea, but I guess so. Here's the page http://projects.gnome.org/gedit/ link to dmg is on the rhs. I was very pleased to see it looks just like gedit should (they haven't os-x-ified it)
I agree re: Rubymine. It is heavier weight by far than TextMate but auto-completion, syntax error highlighting, undefined variable hilighting, etc. is often worth the sub-second delays while editing.
FWIW: I use XCode for all Objective-C development, TextMate for almost everything else, and BBEdit to open large files (IMO the single biggest area of weakness for TextMate). I've tried other editors, but 3 covers everything I need.
I tried to use Texmate like that for a while but ultimately, not having a sensible undo and the kind of sucky non-regex incremental search blew it for me.
how do you write such article without using screenshots :s
I've just had a look at sublime text 2, and it's everything I'm looking for in a textmate replacement. After several abortive attempts to enjoy coding in macvim, I can't believe I didn't try this sooner.

EDIT: does anyone know how I can get two different projects in different sides of a split in the same window? I know this is going against OSX's window management paradigm, but I'm sick of pressing CMD ~ all day, trying to mentally model a stack of windows in LRU/z-order is a cognitive burden I can do without.

EDIT: I love how the Preferences menu item just opens the config file.

EDIT: OMG OMG it actually goes to the most recently open tab on tab close by default, rather than the one on the left! Hallelujah! It kills me that browsers still don't do this.

I can't be the only one waiting eagerly for sublime text to include transparency/alpha-channel backgrounds right? That was one of the big sticking points for me in TextMate, and also one of the big reasons vim on OSX terminal is my secondary option.

I know it sounds like a silly thing to dwell on, but having my editor slightly transparent helps a lot when dealing with UI work.

I just recently switched to Sublime Text 2, and a after a solid week of coding in it, I must say I'm hooked. It's the best editor I've ever used.

I'm writing Boo, both client-side (Unity3D) and server-side (between Mongrel2 and Redis), and all it took was for me to drop in the Boo TextMate bundle and away we went.

The Boo bundle is outdated and needs some love, and Unity integration is missing, but Sublime is so nice that it really seems worth the effort of getting these things set up (when I can get around to it). For now, however, I'm quite happy with it.

Before the switch I jumped around (angrily) between Unitron (Unity's Smultron fork), Smultron, MonoDevelop (still sucks on Mac), GEdit (great editor, but GTK looks like shit on Mac), and tried several others without satisfaction.

Sublime is like a breath of fresh air.

I really like the package management options in emacs. Between Package.el (baked into emacs 24) and el-get I can include almost anything I need by configuring my dotfile. Packages from marmalade, elpa, git repo, hg, emacs wiki, etc...

I can blow away my .emacs.d and, when I restart, all of my configured packages are retrieved and installed. Bliss!

I'm the Smultron/Makefile type.
For Emacs users, Plain ol' GNU Emacs[1] is almost as tickbox compliant as Aquamacs, and has the benefits of not breaking a whole lot of existing stuff by trying to retrofit it with a 'Mac OSX User Experience'.

If you're familiar with standard emacs settings[2] (and have the appropriate vitriol for those who falter into cua-mode), then http://www.emacswiki.org/emacs/AquamacsFAQ might be of use.

[1] Fairly recent binary builds are maintained at http://emacsformacosx.com/

[2] or, more probably, a config built over several years of slow accretion.

I use Aquamacs with Unity to develop games. Opening a script file into an Aquamacs buffer by just clicking on it in Unity is very useful to me.
That should be fairly achievable with either-macs.

I started out with Aquamacs, but ended up getting annoyed with enough of the differences that I finally switched back to the (then Carbon, now Cocoa) emacs.

Most of the useful settings live in the ns- customize-variable land.

    ; open all new files in existing frame
    (setq ns-pop-up-frames nil)
    ; make Cmd act as meta.
    (setq ns-command-modifier 'meta)
    ; ... C-h v ns- TAB TAB
The main features Sublime Text 2 needs before I give them money (since I already have TM and Rubymine):

- code navigation: The main reason I deal with rubymine cpu and memory hogging. - intellisense-ishness: The 2nd reason I deal with rubymine. - better preferences interface: way too emacsish, but is probably much easier for cross-platform compatibility.

The only reason I don't use emacs is its abominable configuration process. I used to use Lucid/XEmacs way back when, but I lost whatever emacs mojo I had gained when I was "forced" to use Windows.

1) install plan9port

2) use Acme

3) program !!!???

4) profit

does RoR run on plan9? I mean if it doesnt, then what am i supposed to do for step 3?
He suggested installing plan9port[1], which "just" ports some user land libraries and applications to different Unices, including OS X. So we're talking about native OS X executables here.

There's also the "Acme Stand Alone Complex"[2], which - if I remember correctly - is a "virtual" Inferno OS applet which includes the Acme application.

I'm not exactly agreeing that piping is the end-all, be-all of editor extensibility, but it's certainly worth giving it a try.

[1]: http://swtch.com/plan9port/

[2]: http://www.caerwyn.com/acme/

There's so much more to Acme than piping. Actions based on regex matching via the plumber for a start. Menus you can type / keep in a text file anywhere you like. No stupid colour syntax highlighting or pointless fancy shit.
(comment deleted)
If you are a programmer, do yourself a favor and learn vi[m] or emacs. You are then ready to hit the ground running on any platform upon which you happen to find yourself working. vi in particular is almost always available on any *nix environment unless it's been deliberately removed as part of a "hardened" configuration. Emacs also is often installed, or if not is easily obtained. Both editors are also available for Windows.
I just started playing around with vim. I still use Sublime for most of my editing, but I enabled Vintage mode so I can test myself occasionally. I have also run through vimtutor a few times.

Finally, I made vim my default terminal editor, which forces me to use it for tasks like finishing my interactive Git rebase sessions.

there should be a poll ... I would make it but the only editor I've used in the list from the article is MacVim
Long time Textmate user here. I'm learning emacs because of the productivity and the portability.

I tried vim but gave up, the Esc key was too clunky to me. Then I tried emacs and it was way more bearable. To be sure, I still need to figure out the features other than moving the cursor around but...all in good time.

Undo button is a bit weird conceptually. When does it switch to redo?

Try putting this in your .vimrc if you don't want to reach all the way to hit the escape key

imap jj <Esc>

Come back to vim :(

This! Although I prefer jk & kj instead of jj.
Interesting...thanks!
I agree that Esc is clunky, but most people don't know that ctrl-c has the same behavior. If you remap your caps-lock key to ctrl, it's a very natural keystroke (at least for me) where you don't need to leave the home row.
(comment deleted)
Funny. I tried Emacs a few times but it was always that undo thing that kept me from sticking with it. Incidentally, it was also the undo that kept me from sticking with Textmate. At some point, I settled with Vim though. Lots more strangeness there, but at least undo works.
Yeah, the undo is a bit strange -- in stock Emacs you have to make a change to the buffer to start undoing in the opposite direction. You can use "undo-only" for a simpler model, or check out some extensions that modify undo mode: http://www.emacswiki.org/emacs/CategoryUndo.

The cool thing about Emacs undo is that it can undo in a region. So, say you've made a bunch of changes, and then realized that one of your earlier changes to a particular line were incorrect: just highlight the line and then undo within that.

Some years ago wanted to try Textmate but then couldn't afford to buy a Mac. Being multiplatform is a plus for Vim, Sublime and Komodo. Not being is a deal breaker for Textmate (Mac) and Notepad++ (Windows). Also love the fact that with just one license I can run Sublime on OS X, Linux and Windows so thinks it's not expensive.
Yeah. Cross platform availability is definitely a must these days. For some time, E-texteditor looked like it could be Textmate on Windows. By now it is just as much vaporware as Textmate itself, though. A pity, really.
I understand what the Aquamacs people are doing, but I think it's a big mistake. What makes Emacs so useful is not adherence to platform standards, but that it is a Lisp runtime with a lot of highly specialized text manipulation primitives that people have been hacking on for years.

It's an autarky wherever it runs, so let it be. I'm as big a proponent of the Macengeist (or whatever you want to call the ineffable quality that makes a good Macintosh application) as anyone I know, but Emacs is it's own world. Best to use straightforward Emacs 23 or 24 as a portal into that world, rather than trying to shoehorn alien concepts into it.

Now, building it on OS X can be a PITA -- not that it's not fully supported, but some stuff could be in better locations than the hated /usr/local. But that's an argument against myself that I'd prefer not to have at this exact moment.

You don't have to build emacs to get a modern version without all the Aquamacs hoo-ha. I've been using the build at http://emacsformacosx.com/ ever since carbon emacs was discontinued. It's a nice, no surprises build.
No, I was more referring to how you have to override a bunch of environment variables in the build and do some edits to Makefile.in to prevent irritating warnings about non-existent directories when you build it yourself. There's nothing wrong at all about http://emacsformacosx.com.
Building GNU Emacs 23 on OS X is trivial.

    ./configure --with-ns && make && make install
This builds an Emacs.app, which you can then drag into /Applications. Nothing goes into /usr/local.
Start it up from the terminal -nw and it complains about a non-existent libexec directory under the source directory.

EDIT: They may well have fixed this recently. I'll rebuild and see.

/Applications/Emacs.app/Contents/MacOS/Emacs -nw works fine for me. (Running OS X 10.7.1 with Emacs 23.3.1 I compiled when it came out on OS X 10.6.something.)
I am building from HEAD, so my results will likely differ than the average user's.
(comment deleted)
OK, so here's the evidence of the argument with myself.

http://homonculus.net/blog/2011/10/02/how-i-build-emacs-now

You might find this useful; you might find it laughable. On my i7 15" MBP it's about ten minutes start to finish, so I usually build first thing in the morning while I'm brewing my coffee.

I've been using MacVim on a daily basis lately and I don't get why everyone is so excited about Sublime Text 2. Does it have git integration, VCS integration, autocomplete, good plugin management, etc? Or is it just a better Textmate?
Yes, to all of those.

I've been using MacVim for ages, but after trying out Sublime Text 2 for a few days, installing a couple of plugins (a pep8 & pylint checker, and a git one), and learning most of the shortcuts I need, I'm completely hooked.

The minimap is just the icing on the cake.

Now if only I could find a Bazaar plugin...

Where can I get information about setting/configuring Sublime ? I would like to try it out but only if I can figure out how to set it up the "right" way. For MacVim I just read one of the numerous blog posts on setting up vundle and reading a few other people's .vimrc files.
Apart from installing the plugins (details depend on the plugin, but basically git clone into the right path), I've not done anything else but learn the shortcuts. Sublime Text 2 works the way (split views, Command-T, pyflakes etc.) that I wanted without all the configuring that was needed in (Mac)Vim.
Has anyone had success with (the somewhat recently released) UltraEdit for Mac? I've used UE on Windows for many years and had been quite happy. When I made the switch to OS X, I continued to do much of my coding in UE via a Windows VM. Looking to finally kick the VM habit, now that Outlook for Mac is available, and selecting a native OS X text/code editor remains the most significant challenge. Sticking with UE would seem to be the easiest approach, but curious if there is any feedback from the community.