Vi keys in Xcode - xcode

I'm surprised no one has asked this yet. What's the best way (if any) to get a Vi experience in Xcode? I know about ViMate but TextMate doesn't come close to Xcode in terms of integration and code completion.
BTW, I am using Xcode 4.

You might want to try out xVim which seems to be an active project. The currently indicate that it works with XCode 4.2, Espresso and Chocolat. Presumably you could selectively enable it with other applications.

Here's another plugin which I made a few weeks ago.
http://programming.jugglershu.net/softwares/xvim.html
This is currently developed for personal (my) use. So you may feel bad with some lack of implementation. Give me a feed back(feature request) then. I'll add some keybinds if I have enough time.

The closest you'll get is http://www.corsofamily.net/jcorso/vi/, or configuring an external editor. This has been a long-standing deficiency with XCode. (If you ask any vi user that is..)
OSX and XCode in general favors Emacs key bindings.
More info on general key-binding strategy for OSX: http://hints.macworld.com/article.php?story=20060317045211408

Right now, I productively use XVim†. I'll probably try $20 ViCiOUS, which seems more polished; I like having source access to my tool-chain, but this is for Xcode, so c'mon me.
† Not xVim, which I just discovered, but apparently face down in the pool. In the [Xx][Vv]im namespace, Xvim (à la Xcode) would have made more sense to me. There, I said it.

Here's another choice: KeyRemap4MacBook.

Related

XCode or make - what should I use?

I started my career on Linux/Unix, and moved over to Windows and Visual Studio. XCode feels pretty alien to me. My feeling is that I'm not in control with XCode. It could be the case that I simply haven't understood how to use the IDE, I am new at developing for Apple OSs. One thing that kind of irks me, is that nobody seem to have found a clean way to compile for multiple platforms (iOS and Mac OS X), using the same sources. I've found two ways to "hack it", but the hacks sound fragile.
I've been pondering the idea of using simple make files instead of XCode (except for the occasional use of Interface Builder).
Is this a sane route to go? Has anyone done this? Are there any major drawbacks I need to be aware of before I take the leap, or should I just bite the bullet and wait for the enlightenment?
Use Xcode, use as many high-level tools as possible. The "loss of control" is replaced by more focus on the application, which IMHO is a great tradeoff.
It is kind of like the loss of control when I went from assembly code to "C", but it was worth it. We keep moving to higher level of abstraction and that allows us to accomplish more, focus on the big picture instead of the minor details.
You've just got to learn new ways of doing things. For example, in the situation you describe (building an OS X and iOS app with shared code), I'd put any shared code into a library/framework that is used by both projects, and create a workspace that contains all three projects.
The loss of control you speak of is offset by the fact that this can all be set up without knowing anything about compiler command-line options in around 10 minutes.
It's a different way of thinking, and it can be frustrating if you know how you would do it on a different platform, but there are advantages to both options. You may never have to think about the build process again!

Is QuickSilver dead? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
After having read that QuickSilver was no longer supported by BlackTree and has since gone open source, I noticed more and more people switching to/suggesting other app launchers i.e. Buttler and LaunchBar.
Is QuickSilver still relevant? Has anyone experienced any instability since it's gone open source?
Quicksilver is still alive and well. There are at least a couple of endeavours to keep it going, up to date and restructure and clean up the code base. Check out the code from Google Code.
As for launching apps, not even Spotlight comes close to how fast it is in Quicksilver.
Of course the real joy of Quicksilver is past just launching apps and using triggers, scripts and the many plugins. My workflow goes to a new level with Quicksilver. I'd be lost without it.
Update: Since posting this I switched and use LaunchBar for a while. This was during the time that QuickSilver seemed to be almost close to death. Loved LaunchBar and didn't need to switch back to QuickSilver. Recently though, I have left LaunchBar and have been using Alfred. I would highly recommend it. For me, LaunchBar and Alfred are pretty close. But, aesthetically and operationally, Alfred suits my tastes more than LaunchBar.
It still runs stably for me. I would be miserable without it.
And yeah, I would recommend switching if you only use it for an "app launcher", but launching apps is like white belt Quicksilver. I don't know of any program that lets you simply tell your computer what to do in such a simple way. And even Spotlight won't remember the keys you usually type to identify an object or action.
Ubiquity for Firefox is pretty good, but it's locked inside a browser...
I haven't used OS X in a while, but the impression I get is that Spotlight has largely negated the reason for using a launcher in the first place. Quicksilver has some cool things like direct objects built in, but by and large it was mostly used for launching apps, and Spotlight can now do that just as fast.
I also gave up on QuickSilver for a while when Leopard came out. I tried Spotlight. I gave up on that and returned. QuickSilver is much faster, and it does so much more that I missed.
I have not noticed any instability (Leopard) running B54 (3815) - it looks like the open-source version is B56A3 though.
QuickSilver is awesome when integrated with Parallels/VMWare Fusion to launch Windows apps too. You don't get the deep integration as with the various OSX plugins, but it definitely helps the dual-OS usability.
I love QS and agree that it is so productive that I am willing to put up with its flaws. I usually have to launch it several times before it gets up and running, though. To fix that issue I created a little quicksilver launcher app.
I use quicksilver all day (on latest version of OSX); and no spotlight doesn't negate it... quicksilver is still much faster for launching applications.
After Quicksilver stopped being updated for a while, I migrated to LaunchBar. Quicksilver had some occasional crashes and could be very resource intensive. LaunchBar has largely the same functionality without these problems. It is not free though.
The one thing I do miss was using QS to quickly send attachments via email to people in my address book. Highlighting the file, activate QS, Current Selection tab Mail to.. tab Person's name was just awesome.
After the 10.5.5 update, I find Spotlight to solve 99% of the things I originally used Quicksilver for and the speed is nearly identical now. Spotlight is invaluable for finding information you may not remember where or when you last saw it. Unless a major rewrite of QS causes me to reevaluate it again, I suspect Spotlight will be all I need and use.
There are a couple branches out there that are active, I think I'm currently running B56 and loving it. I have too many scripts, triggers, objects that I rely on daily...I would be lost without it.
It's 201 and it's still running strong!
QuickSilver is still alive, and well.
You can find the hub-website for all activities at http://qsapp.com/
GitHub (used for source code and issues tracking) is at https://github.com/quicksilver/Quicksilver
The latest version, B58 (3841) is quite stable on Snow Leopard (10.6.6).
No. It's back, baby.
I didn't know Quicksilver wasn't being as actively supported.
It does all I need it to do at the moment though.
Just installed LaunchBar but I can't set it to be Option + Space to "launch", I can't deal with it not using that, I'm too use to Spotlight on Command + Space and Ctrl + Space is for VS 2008 :P

Developer Setup for Starting Out with Cocoa/Mac Programming

I'd like to start experimenting with Cocoa and programming for Mac OSX. I'm not terribly concerned with Objective C syntax/constructs/bheaviors at this point, but more curious as to an efficient setup on in terms of an editor and/or IDE that will get me going quickly. Is there any IDE even remotely similar to Visual Studio (since that's where I've spent most of my time over the last 7 years) in terms of it's solution/project concept? Any other tools, tips, suggestions and/or resources to get up and experimenting quickly?
I'd like to avoid a lot of the intro stuff and get into things like "If you want to create an Mac desktop application, you can use Acme IDE and set up your project like this."
I was afraid Xcode was going to be the answer! :P I tried playing around with that -- literally just getting it off the DVD and just diving in with no idea what to expect (before I even knew that you used Objective C as the language). I figured, the wise guy that I am, that I could just sort of fumble around and get a simple app working ... wrong.
#Andrew - Thanks for the insight on those config settings. Based on my Xcode first impression, I think those may help.
I'd suggest you pick a fun little product and dive in. If you're looking for a book I'd suggest Cocoa Programming for Max OSX which is a very good introduction both to Objective-C and Cocoa.
XCode is pretty much the de facto IDE and free with OSX. It should be on your original install DVD. It's good but not as good as Visual Studio (sorry, it's really not).
As a long-time VS user I found the default XCode config a little odd and hard to adjust to, particularly the way a new floating window would open for every sourcefile. Some tweaks I found particularly helpful;
Settings/General -> All-In-One (unifies editor/debugger window)
Settings/General -> Open counterparts in same editor (single-window edit)
Settings/Debugging - "In Editor Debugger Controls"
Settings/Debugging - "Auto Clear Debug Console"
Settings/Key-binding - lots of binding to match VS (Ctrl+F5/Shift+F5,Shift+Home, Shift+End etc)
I find the debugger has some annoying issues such as breakpoints not correctly mapping to lines and exceptions aren't immediately trapped by the debugger. Nothing deal-breaking but a bit cumbersome.
I would recommend that you make use of the new property syntax that was introduced for Objective-C 2.0. They make for a heck of a lot less typing in many many places. They're limited to OSX 10.5 only though (yeah, language features are tied to OS versions which is a bit odd).
Also don't be fooled into downplaying the differences between C/C++ and Objective-C. They're very much related but ARE different languages. Try and start Objective-C without thinking about how you'd do X,Y,Z in C/C++. It'll make it a lot easier.
The first document to read and digest is the Mem management guide, understand this before moving on. This is a great guide to objective-c too. Infact the developer site at Apple is very good - but you would probably want to read the Hillegas book first.
In regards to Xcode vs Visual Studio - they are different. I wouldn't say one is better than the other - Windows developers come over from VS and expect it to be the same. This is just an arrogant attitude and please don't fall into this crowd. Having used VS since the AppStudio days and Xcode for a year or so now, both have strengths and weaknesses. Xcode is something that out of the box (and especially when coming from VS) doesn't seem that good, but once you start using and understanding it - it becomes very powerful.
Also, there are a lot more tools included with Xcode et al, such as Instruments and Shark that you simply can't get with VS, unless you open your wallet, and even then IMHO aren't as good.
Anyway, good luck. I still enjoy C#, but Objective-C/Cocoa somehow makes programming fun again once you get into it...
Don't bother digging up your OSX DVD as they've released a new version (3.1) of XCode since then.
First, you'll want to join Apple Developer Connection (it's free, and you need it to access their version of MSDN) - it uses your Apple ID so if you've ever had one for the itunes store etc, it's that same username/password
Once you've done that, click on downloads, then click on developer tools, to view this page, and go for the XCode 3.1 Developer DVD
One other suggestion: If you have feature or enhancement requests, or bugs that you've run into, be sure to file them at Apple's Bug Reporter. It's the best way for developers to communicate their needs to Apple, because every issue is tracked through the system.
You might try the demo of textmate and see how you like it for working with objective-c or any other type of text really. It will import xcode project settings so you can still compile and run from textmate rather than having to go back to xcode.
Xcode is the standard for editing source files, though you can use another editor in conjunction with the command line xcodebuild tool if you really want. I used Vim for all my Cocoa editing before finally giving in to Xcode. It's not the greatest IDE in the world, but it gets the job done, and the recent 3.x releases have had some nice improvements.
The real power tool of Cocoa development is Interface Builder. IB does not generate source code like many UI tools. Instead it manipulates real Cocoa views, controls, and objects which it then bundles into an archive (nib) that is loaded by your program at runtime. Most Cocoa programs use at least one nib file, and often many more.
No matter what IDE/editor combination you choose for hacking on source files, I recommend using IB where you can. Even if you're not a fan of other UI layout/generation tools, I suggest keeping an open mind, giving "the Cocoa way" a chance and at least learning what Interface Builder can do for your development process.
AFAIK, pretty much every OS X developer uses Xcode.
That, and Interface Builder for creating the GUIs.
FWIW, try to get hold of a copy of Hillegas's book, as it's a great introductory tutorial, and the reference Docs Apple provides really aren't. (They are generally very good reference docs, however).
Cocoa is huge. The hardest part of learning how to write apps on Mac is learning Cocoa. By the way. You do not need to know ObjC (though it helps tons). You can write Cocoa apps with Python or Ruby (right in the IDE).
I agree VS is a better IDE then Xcode. But if you throw in Interface Builder and all the other tools, I'm not so sure. Mac development is not about 1 giant IDE for everything. But VS is "kinder" on the developer then Xcode is.
Also if you want to do cross platform apps look at RealBasic. A fine tool (Basic though. But it runs on Linux too.) You'd be surprised how many Mac apps are written with RB.
I've heard the books currently out there are pretty out of date. The whole ecosystem seems to evolve very fast with dramatic changes made in every OS release.
He wrote a tutorial which pulls together some Apple documentation and other tutorials which should get you started. I think it covers the basics of using the IDE, writing simple apps, and then goes on to more advanced stuff.
I've been dabbling in Cocoa for the past couple years, and recently picked up Fritz Anderson's "Xcode 3 Unleashed." Highly recommended for getting into Xcode — especially with some of the big changes 3.0/Leopard brought.
Don't forget Hillegass' defacto Cocoa bible, "Cocoa Programming for Mac OS X - Third Edition."
#peter I don't know why you had trouble with getting a simple app working, right off the bat without doing anything your app gets a lot of benefits from the Cocoa framework. If you mean you were trying to do stuff like connect a button to an action and have it print a alert on screen or something like that then yes I could see where your going with it being difficult.
The problem for me starting with Cocoa many years back is that it was so different from anything else that it had a little bit of a learning curve. Whereas many other systems are compile time oriented Cocoa is very dynamic and runtime oriented. Once you get past learning how actions hook up to classes it just becomes a matter of learning how the Cocoa frameworks work.

What Ruby IDE do you prefer? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I've been using Eclipse with RDT (not RadRails) a lot lately, and I'm quite happy with it, but I'm wondering if you guys know any decent alternatives. I know NetBeans also supports Ruby these days, but I'm not sure what it has to offer over Eclipse.
Please, list any features you think are brilliant or useful when suggesting an IDE, makes it easier to compare.
Also, I said Ruby, not Rails. While Rails support is a plus, I prefer things to be none Rails-centric. It should also be available on Linux and optionally Solaris.
RubyMine from JetBrains. (Also available as a plugin to IntelliJ IDEA)
Have you tried Aptana? It's based on Eclipse and they have a sweet Rails plugin.
Redcar has been getting some attention lately, as well. Still early in its life, but it shows promise.
On Mac OS X, TextMate is a godsend.
The latest Netbeans IDE (6.1) has a pretty solid Ruby support.
You can check it out here.
Once I found Geany (Ubuntu), I switched from TextMate (OSX) and never looked back.
Geany is a lean, clean, speedy IDE that can be used either as a text editor or a light-weight IDE. It supports not only text editing features (syntax highlighting, code folding, auto-completion, auto-closing, symbol lists, code navigation, directory tree, multi-tabbed open files etc.) but also normal IDE features such as simple project management, compile-build-run within the main window. Unlike TextMate, it has a Terminal screen within its own window; you do not have to go back and force between your editor window and terminal window. Unlike TextMate, it supports international languages. Unlike TextMate, it supports multi-platforms, Unlike TextMate, it is open-source and free. Geany is now my favorite C/Ruby/XML development tool.
RubyMine is so awesome. Everything just works. I could go on and on. Code completion is fast, smooth, and accurate. Formatting is instantaneous. Project navigation is easy and without struggle. You can pop open any file with a few keystrokes. You don't even need to keep the project tree open, but it's there if you want. You can configure just about any aspect of it to behave exactly how you want.
NetBeans, Eclipse, and RubyMine all have more or less the same set of features. However, RubyMine is just so much more cleanly designed and easy to use. There's nothing awkward or clunky about it. There are all these nice little design touches that show how JetBrains really put thought into it instead of just amassing a big pile of features.
Incidentally RubyMine can do a lot of the things that Vim can do like select and edit a column of text or split the view into several editing panels with different files in them.
NetBeans has some really solid Ruby support.
I have used Komodo and it's pretty good. I use TextMate now.
For very simple Linux support if you like TextMate, try just gedit loaded with the right plugins. Easy to set up and really customizable, I use it for just about everything. There's also a lot of talk about emacs plugins if you're already using that normally.
Gedit: How to set up like TextMate
In last 3 months, I have tried RadRails, Netbeans and RubyMine and finally settled on RubyMine not so much for features but for responsiveness and stability reasons.
In terms of features, RubyMine has slightly better code completion, debugging and code navigation, but only ruby beginners(like myself) need them most. Relying on code completion and code navigation is anti-ruby/rails, as ruby/rails names are supposed to be natural and each line of code needs to be in its convention determined location.
NetBeans is good because you can use it on Windows and Mac OS X.
Most IDEs present the project structure in a top down manner. This is great way to explore at a high level when joining an existing project. However, after working on the same project for more than a year, I realized that this approach can become counter-productive.
After Oracle declared the end of Ruby in NetBeans, I switched to Vim. By using a command line and an editor as the only tools, I was forced to mentally switch to a bottom-up perspective. To my amazement, I discovered that this made me more focused and productive. As a bonus, I got first class HAML and SASS syntax support.
I recommend Vim + Rails plugin for anyone that will work on a single project for an extended period of time.
While TextMate is not an IDE in the classical sense, try the following in terminal to be 'wowed'
cd 'your-shiny-ruby-project'
mate .
It'll spawn up TextMate and the project drawer will list the contents of your project. Pretty awesome if you ask me.
Aptana more or less is RadRails, or it's based on it. I've used it, and it's really good, but it does have some problems. For instance, it breaks the basic search dialog on my system (giving a raw java exception to the end user), and it clutters the interface with add like notices and upgrade bars and news feeds and...
But all in all it's pretty good, especially its editors (ERB, HTML/XML, ...) are top notch.
I prefer TextMate on OS X. But Netbeans (multi-platform) is coming along quite nicely. Plus it comes with its IDE fully functional debugger.
Textmate on osx
I started out using gEdit (ubuntu user), but even with all the plugins and modifications (class/file browser, terminal, darkmate scheme, etc, etc) it still always seemed to come up short. I've also tried like hell to get Aptana RadRails and Studio to work, but none of them ever really seemed to sync up with my workflow. I've even tried using Eclipse, but again, it just didn't work for me.
RubyMine also seemed like it would be great, but I found it to be way too buggy, even after the upgrade to 3.0.
So far, my favorite Ruby editor is Komodo Edit. It's got syntax highlighting and can detect errors and recognize your code based on user-specified ruby versions. Syntax highlighting schema are easily customizable and easy on the eyes. There are some very nice plugins for git, it can have split-screen editors (love that feature), and a great file-browser. I really wish Komodo had built-in terminal (multiple terminal) support, but everything else about it I've really come to love, and haven't found anything better yet.
E Text Editor is great (TextMate compatible sort-of-clone for Windows).
emacs with ruby-mode, rdebug and a ruby interactive inferior shell.
I'd recommend NetBeans 6.1 too. Very nice IDE and makes working with Ruby a pleasure.
I started out with RadRails then moved to Aptana when they took it over, wasn't too bad. Got a macbook and have been using Textmate, never going back.
Ruby in Steel: http://www.sapphiresteel.com/Products/Ruby-In-Steel/Ruby-In-Steel-Developer-Overview
A Visual Studio based Ruby IDE. Fast Debugger. Intellisense.
+1 for TextMate on Mac OS X.
See also answers to this question. I recommend trying NetBeans if you're on Windows.
On Mac OS there is also XCode. http://developer.apple.com/tools/developonrailsleopard.html

List of macOS text editors and code editors [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I searched for this and found Maudite's question about text editors but they were all for Windows.
As you have no doubt guessed, I am trying to find out if there are any text/code editors for the Mac besides what I know of. I'll edit my post to include editors listed.
Free
Textwrangler
Xcode
Mac Vim
Aquamacs and closer to the original EMacs
JEdit
Editra
Eclipse
NetBeans
Kod
TextMate2 - GPL
Brackets
Atom.io
Commercial
Textmate
BBEdit
SubEthaEdit
Coda
Sublime Text 2
Smultron
WebStorm
Peppermint
Articles related to the subject
Faceoff, which is the best text editor ever?
Maceditors.com, mac editors features compared
Thank you everybody that has added suggestions.
I thought TextMate was everyone's favourite. I haven't met a programmer using a Mac who is not using TextMate.
I haven't used it myself, but another free one that I've heard good thing about is Smultron.
In my own research on this, I found this interesting article:
Faceoff: Which Is The Best Mac Text Editor Ever?
Emacs
Vim
But I use TextMate, and can say that it is, without a doubt, worth every penny I paid for it.
Sublime text is awesome (http://www.sublimetext.com/2). Excellent search features, very fast and lightweight. Very decent code completion.
I also use RubyMine and WebStorm a lot (http://www.jetbrains.com/). They are excellent but not all purpose like TextMate.
MacVim and SubEthaEdit are two nice options
I've tried Komodo out a bit, and I really like it so far. Aptana, an Eclipse variant, is also rather useful for a wide variety of things. There's always good ole' VI, too!
If you ever plan on making a serious effort at learning Emacs, immediately forget about Aquamacs. It tries to twist and bend Emacs into something it's not (a super-native OS X app). That might sound well and all, but once you realize that it completely breaks nearly every standard keybinding and behavior of Emacs, you begin to wonder why you aren't just using TextEdit or TextMate.
Carbon Emacs is a good Emacs application for OS X. It is as close as you'll get to GNU Emacs without compiling for yourself. It fits in well enough with the operating system, but at the same time, is the wonderful Emacs we all know and love. Currently it requires Leopard with the latest release, but most people have upgraded by now anyway. You can fetch it here.
Alternatively, if you want to use Vim on OS X, I've heard good things about MacVim.
Beyond those, there are the obvious TextEdit, TextMate, etc line of editors. They work for some people, but most "advanced" users I know (myself included) hate touching them with anything shorter than a 15ft pole.
CotEditor is a Cocoa-based open source text editor. It is popular in Japan.
Best open source one is Smultron in my opinion, but it doesn't a torch to TextMate.
There's a new kid on the block - PHPStorm. I used it for a whole year. Its not free but offers an individual license of 49$ for a year, free for Open Source Developers.
Speedy for an IDE - Its based on Java so looks somewhat like Eclipse/Netbeans but smokes them to dust in terms of speed (not as fast as Coda/Textmate as this is an IDE).
Keyboard shortcuts galore - I seldom touched the mouse while developing using PHPStorm (that's what I didn't like about Coda)
Subversion support built-in - Didn't need to touch Versions or any other SVN client on Mac
Supports snippets, templates - zen-coding is supported as well
Supports projects, though in separate windows
File search, code search
code completion, supports PHPDoc code completion too
BBEdit makes all other editors look like Notepad.
It handles gigantic files with ease; most text editors (TextMate especially) slow down to a dead crawl or just crash when presented with a large file.
The regexp and multiple-file Find dialogs beat anything else for usability.
The clippings system works like magic, and has selection, indentation, placeholder, and insertion point tags, it's not just dumb text.
BBEdit is heavily AppleScriptable. Everything can be scripted.
In 9.0, BBEdit has code completion, projects, and a ton of other improvements.
I primarily use it for HTML, CSS, JS, and Python, where it's extremely strong. Some more obscure languages are not as well-supported in it, but for most purposes it's fantastic.
The only devs I know who like TextMate are Ruby fans. I really do not get the appeal, it's marginally better than TextWrangler (BBEdit's free little brother), but if you're spending money, you may as well buy the better tool for a few dollars more.
jEdit does have the virtue of being cross-platform. It's not nearly as good as BBEdit, but it's a competent programmer's editor. If you're ever faced with a Windows or Linux system, it's handy to have one tool you know that works.
Vim is fine if you have to work over ssh and the remote system or your computer can't do X11. I used to love Vim for the ease of editing large files and doing repeated commands. But these days, it's a no-vote for me, with the annoyance of the non-standard search & replace (using (foo) groups instead of (foo), etc.), painfully bad multi-document handling, lack of a project/disk browser view, lack of AppleScript, and bizarre mouse handling in the GVim version.
jEdit runs on OS X, being Java-based. It's somewhat similar to TextMate, I think.
Editra looks interesting, but I've not tried it myself.
TextMate not for "advanced programmers". That does not make sense, TextMate contains everything an "advanced programmer" would want. It allows them to define a bundle that allows them to quickly set up the way they want their source code formatted, or one that follows the project guidelines, quick easy access to create entire structures and classes based on typing part of a construct and hitting tab.
TextMate is my tool of choice, it is fast, lightweight and yet contains all of the features I would want in a tool to program with. While it is not tightly integrated in Xcode, that is not a problem for me as I don't write software for Mac OS X. I write software for FreeBSD.
Definitely BBEdit. I code, and BBEdit is what I use to code.
You might consider one of the classics - they're both free, extensible and have large user bases that extend beyond the Mac:
Aquamacs - emacs for OS X (emacs in a shell window is also an option)
Mac Vim - VI with a Mac-specific GUI (vim in a shell window is also an option)
I prefer an old-school editing setup. I use command-line vim embedded in a GNU Screen "window" inside of iTerm.
This may not integrate well with XCode, but I think it works great for developing and using command-line programs. If you spend any significant time working in a terminal, GNU Screen is worth the 30 minutes it takes to master the basic terminal multiplexing concepts.
Coda's great for PHP/ASP/HTML style development. Great interface, multiple-file search and replace with regexp support, slick FTP/SFTP/etc integration for browsing and editing remote files, SVN integration, etc.
It now supports plugins and the plugin editor can import TextMate bundles, so there's a bright future there. There aren't a lot of must-have plugins yet because the plugin support was newly introduced with version 1.6 a few months back. It's a popular app, though, so I expect more in the future.
The "killer features" for me are:
* Seamless editing of remote files
* Code navigator (symbol browser; pane that lists functions etc)
Most people aren't really into using symbol browsers but as I have to maintain a lot of unfamiliar code I find them invaluable.
I'm not sure that Coda has the "raw power" of TextMate though. I plan on getting familiar with TextMate next.
I make use of Komodo IDE. It supports a huge number of languages, and is customisable but is a bit expensive (my company bought me a copy). A really good alternative is the free version called Komodo Edit. Loads really quickly and has a decent feature list and I find myself turning to it rather than the full IDE for a lot of jobs.
Smultron is another good (and free) one.
I actually prefer EditRocket over TextMate. I use it on both my Mac and Ubuntu machines. It is nice to use the same editor on multiple operating systems.
Textmate is state of the Art editor, but if someone is thinking about developing on several platforms without awkward memory eaters monsters like jedit, eclipse, netbeans etc take a look at geany (geany.org). It is free. The only problem the editor has not esthetic look and feel on Mac OS X :)
Fraise is a nice free option. It has some rough edges, but you can't beat the price. I believe it's a fork or successor of Smultron.
SubEthaEdit
Coda
DashCode with OS X 10.8 or older
Eclipse and its variants.
Netbeans
I use Eclipse as my primary editor (for Python) but I always keep SubEthaEdit handy as my supplemental text editor (free trial, 30 euros to license). It's not super-complicated but it does what I need.
Another vote for Smultron. I used it when doing some XQuery programming and being able to define a keyword files for syntax color highlighting was great.
I have installed both Smultron and Textwrangler, but find myself using Smultron most of the time.
I would love to use a different editor than XCode for coding, but I feel, that no other editor integrates tightly enough with it to be really worthwhile.
However, given some time, TextMate might eventually get to that point. At the moment though, it primarily lacks debugging features and refactoring.
For everything that does not need XCode, I love TextMate. If I had another Mac-user in my workgroup I would probably consider SubEthaEdit for its collaboration features. If it is Emacs you want, I would recommend Aquamacs (more Mac-like) or Carbon Emacs (more GNU-Emacs-like)
I've been using BBEdit for years. It's rock-solid, fast, and integrates into my Xcode workflow decently well. (I'm not sure anything integrates into Xcode as well as the built-in editor, but who has time to wait for the built-in editor?)
For small team projects which don't use a source control system, or for single user editing on multiple machines, SubEthaEdit comes highly recommended.
Eclipse and Netbeans have text editors among a whole lot of other stuff. I don't think you would want to wait 10 seconds for your text editor to become ready :/...If you are going to spend some serious time coding then spend some time and learn to use vim (emacs too but, I recommend vim)

Resources