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?
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.
imap jj <Esc>
Come back to vim :(
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.
./configure --with-ns && make && make install
This builds an Emacs.app, which you can then drag into /Applications. Nothing goes into /usr/local.EDIT: They may well have fixed this recently. I'll rebuild and see.
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 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.
I'll repeat myself from other comments here on HN. Sublime Text 2 is amazing and worth every penny of the $59 it costs.
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.
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."
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.
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 annoying but minor/fixable while the advantages aren't going to be duplicated by Vim any time soon. All in all, despite it being closed source it's a much better platform for me to build on. In addition the base platform has quite a few features that I'd implemented as plugins and there are some neat plugins like a package manager and REPL, which aren't polished but neat.
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.
[0] http://www.sublimetext.com/blog/articles/sublime-text-2-publ...
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.
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 ;).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.
Does Gedit for require X11?
Here's to hoping he figures out how to make the configuration a little easier for non-programmer types to deal with.
I'm still missing a couple of key functions, especially `` when doing searches, but vico is already awesome and can only become more so with progress.
Definitely my favorite now of the post-TM editors. Still use Vim in Terminal.app though.
https://github.com/scelerat/vico_review/blob/master/vico_rev...
2) use Acme
3) program !!!???
4) profit
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.
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 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 TABIn 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.
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...
I seldom think about whether something is closed or open if it helps me actually get things done. Why would I pick anything else (open or closed source) based on an economic principle if it made me worse at my job?
Finally, I made vim my default terminal editor, which forces me to use it for tasks like finishing my interactive Git rebase sessions.
- 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.
I post invites to http://simp.ly/publish/kkhBKb when I get ’em. Or request your own on ##chocolat (two hashes) on Freenode.
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.
http://www.sublimetext.com/docs/2/vintage.html
Here, have some cake.
If I was mostly in OSX it would be a different story, but for the cross-platform developer, I really think the Vim and Emacs options are the way to go.
I have been a happy user of Vico for the past two months after years of putting up with Textmate's lame undo. I recommend it if you are comfortable with vi/vim/macvim but want a more Maclike interface plus Textmate bundles and theme support.
I can blow away my .emacs.d and, when I restart, all of my configured packages are retrieved and installed. Bliss!
Rob Pike and Russ Cox both use acme on OS X.