-
Website
http://smartic.us -
Original page
http://smartic.us/?p=32785 -
Subscribe
All Comments -
Community
-
Top Commenters
-
bryanl
27 comments · 3 points
-
jjulian
3 comments · 1 points
-
scottmotte
3 comments · 1 points
-
TomK32
2 comments · 1 points
-
joegrossberg
2 comments · 2 points
-
-
Popular Threads
-
10 developer skills needed in 2010
2 weeks ago · 12 comments
-
Programmer vs Rap Star
2 weeks ago · 9 comments
-
Semantic Versioning
1 week ago · 2 comments
-
10 developer skills needed in 2010
A couple of more problems with TextMate:
1. Primitive undo. This editor was out for a couple of years already and this issue is not fixed yet.
2. Jump history. I want to browse my code and come back where I left editing with one keystroke. That makes ctags bundle completely useless.
3. Mac specific and not open sourced. I can’t imagine how you can become a master of your editor if you can’t change it and compile your customized version.
I know it’s verboten in the inner circles of Ruby and Rails development but Netbeans has the best support I’ve yet seen.
I’m in agreement, dude. I just don’t have the bandwidth or desire to learn vim and the hype hasn’t demonstrated enough reason to make me switch.
TextMate ftw, for now.
Know the old joke? Emacs is a nice operating system, it just lacks a good editor. There is truth in this joke.
I have forced myself to use heavily emacs, but then I was using windows at that time and Emacs was a way to keep my roots.
On a Mac I love Textmate a lot.
I know vi inside out and tried hard to use all the commands and I mean all: back in 1985 vi was my home and my life.
Today, on a Mac, I use vi sparingly, I love to do ‘vi .’ when I have to navigate unknown territory, easier than dragging and dropping the hell.
I do not use vi on a Mac: there is always to choose wich is the right interface and the obvious key bingings and which are the right widgets and on MacOS my choice is characters or aqua.
It’s interesting that you mentioned key bindings and carpal tunnel. One of the things I grew tired of in TextMate was the need to use the mouse from time to time.
Terminal editors can be fully driven from the keyboard, which I’ve found to be more comfortable. And of course, you can customize the key sequences as well.
That being said, you should use the tools that work best for you.
In addition to Kent’s points, which I agree with wholeheartedly, there is a simple deal-breaker for me:
I need to split the window.
How can you code rails without being able to look at a model, view, and controller on the same screen? I have anywhere from 2-9 splits open on my editor screen (a 24” widescreen) at any given time.
I agree. Although I wish TextMate had a little more active development these days, but I’m betting Allan is working hard behind the scenes on TextMate 2.
There is a lure in learning something like vim because you can use it in pretty much every environment, but almost every aspect of my development is done on the Mac, so this benefit has little use outside of editing a random config file now and then on a server.
That about sums up why I finally switched to vim. I am not a mouse guy, so I could never become one with TextMate.
We all hope Textmate 2 will have some new features like you described, but have we heard anything new out of their devs? The last time I checked, all I could find were vague postings saying they were “working on it.” Their wiki posting<sup>1</sup> about Textmate 2 sounds quite flippant and offers zero confidence, imho.
I’ve started to use carbon emacs, but I am not enjoying it at all yet. Having the split screen is immensely helpful, though, and I can tell a huge difference already. The hard part (for me) is getting the windows split the way I want them, then loading all of the files I need, then figuring out the quickest ways to load files into the other windows. I have three printed cheat sheets handy with common commands highlighted, but I’m still really clumsy at it.
This post<sup>2</sup> by Geoffrey G has been very helpful, and I’m eagerly looking forward to an emacs screencast.
<pre>
http://wiki.macromates.com/FAQ/TextMate2http://nubyonrails.com/articles/emacs-emacs</co...>
bryanthompson, the split screen was a real plus of emacs to me. I had the clumsy window management problem, but since it’s emacs I hacked up a little window manager in it. It’s far from done, but I find it useful. Steal as much of it as you want.
http://gist.github.com/34464
Viper!
There are two vi features that I think greatly improve my editing efficiency and I can’t stand working without them: the dot key and the modal command set. I use the dot key constantly during program editing because I find I frequently have to do the same thing multiple times. And I like the vi modal command set because it puts a wealth of commands right under my fingers without having to reach for the mouse or arrow keys or meta-ctrl-cokebottle.
That said, I use emacs. The ‘viper’ vi emulation gives me the vi functionality (with superior implementation imho), plus I get emacs features (although I’ve barely scratched the surface of those).
I switched before vim became popular, so back then the emacs capabilities added a huge improvement over vi. Vim probably helps level the playing field.
Might not be what you meant exactly but, you can write vim scripts in a number of languages. Ruby, Perl, Python, doesn’t have to be done in vim script. Then again I say pick an editor you like and stick with it. All switching back and forth does is ruin productivity.
These have been touched on, but the main reasons I moved from TextMate to vim were:
1. Platform independent – vim is everywhere. Anytime I ssh into a box, my development environment is waiting.
2. Remote pairing – I dare anyone to come up with a more efficient, lo-fi approach to remote pairing than screen + vim / emacs + skype. When both pairs are efficient at the editor, it’s like you’re right there.
Also, when dealing with brand-spanking-new languages (clojure,io,etc) it seems the a .vim and .el config files are the first to show up on the scene.
- Drew
I picked up emacs for erlang, though I wish vim had better support.
/sigh
I recommend disabling the toolbar to make Carbon Emacs prettier:
(tool-bar-mode 0)
I also recently found mac-toggle-max-window (not part of the default distro anymore), which fills the monitor with the editor giving about two more vertical lines.
Thanks for posting this Bryan. I too have been mystified by the recent surge in TextMate users jumping ship. I’ll keep an eye on the other editors, but I don’t plan on switching soon. The benefits I’ve seen are minor compared to the steep cost of learning.
I’m curious to see, when the dust settles, which editor everyone ends up sticking with.
Thank you for not blindly jumping on the vim bandwagon from TextMate like so many people seem to be doing.
Having the split screen is immensely helpful
Excellent comment. I like visual bandwidth. I use Lucida 7pt font and have 10 to 15 panes, “splits”, open at a time in an Emacs window on my desktop for a project, usually with 2 full height panes (100+ lines and 78 columns). On my laptop, it’s 8-10 panes for a project, with the same full height at 1440×900 in Lucida 6pt. A major project will normally have 50+ files/buffers loaded (source files, test inputs & outputs, notes, etc.). I will frequently spawn a temporary 2-pane window to do a complex copy-and-fill from a virtual list (each element embedded in text fragment) in one pane into a different sequence of text fragments in the second pane using a temporary recorded keystroke macro. All this has seemed easy to do in Emacs for years.
Each to his/her own taste, though.
1. You still have to use a mouse with TextMate
2. You can fire up Vim/Emacs on a remote machine, and already be proficient in the editors installed.
Fact: If you spend the time to learn the programs, you’d be way more efficient in either Vim/Emacs than you’d “ever” be in Textmate.
Those are some big reasons for me.
As with Textmate, Vim requires you to learn a language to configure it.
Huh?
After a good year or two with TextMate I have switched back to Emacs. I am still frustrated but <span class="caps">BOY</span> was I frustrated with TextMate.
TextMate does two things right that Emacs still has no clue about. The first is it understands multiple syntaxes in the same file. It understands rhtml, with chunks of <span class="caps">CSS</span>, JavaScript, <span class="caps">HTML</span> and Ruby all in the same file. Until somebody emulates that in emacs, emacs officially sucks in that department.
The other TextMate thing that emacs cannot do properly is ‘find-file-in-project’ otherwise known as <span class="caps">CMD</span>-T. That command is awesome and somebody needs to copy that properly in Emacs.
Here’s a tiny fraction of what emacs gets right and what I missed the most:
(1) kill ring
(2) mark/point
(3) hippie expand
(4) kill-sexp forward and backward
(5) split window
(6) proper language-dependent indentation
(7) Proper extension language. The only way to do everything you want in TextMate is to send the entire file to the ruby-script and there’s still no way to specify the position of the caret when you get back. There are some tricks but it’s not enough.
Emacs is complex and full of all sorts of conflicting stuff, there’s no denying it. Somebody needs to strip it down and take what’s best about it and write some code to take what’s best of TextMate and include it in emacs. But now that I am back in emacs, I am wondering how the hell I survived without it for so long (after 20+ years of using it and even writing my own version of emacs 20 years ago).
I am starting a project of my own to see if I can sort this out. I’ve started with the management of () {} [] ”” ’’ ``. I want a <span class="caps">CMD</span>-T that’s worthy of text mate next. Then I will tackle (and probably fail) multiple modes in a single file. I plan on switching modes as the cursor moves from one section to another. Think emacs is up for it? I’ll let you know.
re: “in my mind it seems like the mob’s mindset is to move away from Textmate while keeping Textmate’s features. Pragmatic Bryan just figures that he would stick with Textmate, and have less to learn.”
The idea is to move away from Textmate, keep the great Textmate features <span class="caps">AND</span> have the features it is missing. Using vim as a textmate replacement gives you:
0. the * command which finds the next occurrence of the word under the cursor without any ceremony. the ’%’ command, which can be made to match all sorts of things like parens, html tags, custom stuff like if/end, etc. the ’.’ command, which repeats the last command which is great because what it considers a command can be a complex multistep process (eg, “delete the line up to the second comma, insert the characters ‘true’” can all be one command). The fact that you can interact with “textual objects” instead of only characters and lines, eg: c[hange]i[nner, ie not inclusive]’: delete everything between the two single quotes that the cursor is within. Also works with parens, brackets, html tags, words, etc. Zero ceremony macros that can be edited by hand and restored, etc. etc ad nauseum. There’s tons more absolutely wonderful commands but this comment isn’t a vim tutorial so I will force myself to continue.
1. you <span class="caps">CAN</span> control the editor using ruby or python (and several others).
2. it has split windows that are very easy to use.
3. it has <span class="caps">CMD</span>-T (and it’s fast as far as I am concerned) by installing an extension [1]. I am slightly stupid, so I’ve been unable to get a lot of the emacs plugins to work, but I have had close to 0 trouble with vim plugins.
4. customizing vim in significant ways isn’t any more difficult than expected. i did so within a couple of days of switching.
5. I’ve never had it choke on a large file and I’ve opened some large ones.
6. IT’S <span class="caps">FREE</span> ;-)
7. Perhaps most importantly: sane undo (As a side note, vim goes far beyond having sane undo.. It has undo branching<sup>1</sup> which is just awesome.
there’s actually a ton more, but I am winding down my lunch break. I started using it in anger about 2 weeks ago, and every day I am amazed by some new trick that I learn.
Good luck!
[1] search for fuzzyfinder_textmate, also see jamis’ article in general if you haven’t yet
[2] This article touches on undo branching.. It’s a neat feature that I have wanted ever since my Homesite days: http://lifehacker.com/software/text-editor/go-b...>
The Prags say pick one editor and learn it well, and I think it’s good advice. Somewhere between five and eight years ago I surveyed the mishmash of editors I had used, surveyed the field of editors available, and decided Emacs was the only one that offered the features I was looking for. I dedicated myself to learning Emacs. It probably took a good six months to become really comfortable with it, and I’m still learning things about it to this day. But at this stage I’ve become sufficiently one with the tool that I can’t imagine being as productive in anything else.
I really don’t get all editor fad-ism going on in Ruby/Rails land. The only thing I can figure is that a lot of these people were still stuck in the “use whatever <span class="caps">IDE</span> comes with the language stack” mindset, and Ruby/Rails work was the first time they realized they could and must choose their own. So I guess it’s a good thing.
To my mind the only reason to switch tools is if you see someone doing things in another tool that a) you can’t imagine doing in your usual tool; and b) once you’ve seen them, you can’t stand living without. Once you switch, pursue mastery. A lot of people know only the fraction of their tools’ capabilities, which I suspect is one of the reasons they are susceptible to these tool fads.
I can think of only once exception to the rule of sticking with one editor. Occasionally there are tools so well-integrated into a language that it behooves you to make the adjustment when using that language. The two examples that come to mind are the various Smalltalk browsers, and Eclipse for Java. The first because only a tool integrated with the running Smalltalk image can expose the full power of Smalltalk; and the latter because you need something which will take care of manual drudge-work for you if you’re going to work with a language as tedious as Java.
For languages which don’t have a language/editor symbiosis that strong, I say pick one editor, learn it well, and stick with it.