Well, I started working at a place where I was regularly juggling 2-4 SSH sessions, 2 programs running and dumping logs in other tabs, plus a few more open terminals, and after a coworker introduced me to the wonderful zsh[1], I wondered what other great tools I was missing. That's what led me to iTerm2.
I stuck with iTerm because of the many, many little features and conveniences that make working with the terminal easier.
Tabs can be put at the bottom of the screen, which solves that pesky issue where changing tabs on a fullscreened terminal.app causes the OSX topbar to slide down and intercept your click. Tab titles change color depending on the kind of activity that's going on within. Hotkey mapping is a lot more powerful, and lets you send arbitrary hex/escape codes with hotkeys. There's a drop-down mode, like Tilda or Visor. This might just be placebo, but I'm pretty sure it also glitches out less often than Terminal.app.
All in all, everything is just a little bit nicer than the stock terminal.
* 256-color support. This was added in Lion I believe.
* There's a really weird bug with word-wrapping that only manifests itself in Terminal.app: http://superuser.com/q/46948/5966 As of 10.9, I believe it remains unfixed.
FWIW, I've tried switching to iTerm about 3 times and I've always to come back to Terminal.app because it feels more
"solid or "native" and it minimizes the installation + configuration I need to do on a new machine to feel comfortable.
Likewise - I live in Terminal.app all day long, 4-6 hours at least, and for some reason I always return back to Terminal.app - particularly now that I can auto-rename tabs when I ssh into other other hosts (PROMPT_COMMAND='printf "\033]0;remote_host\007"').
With that said, I'm going to give iTerm another try - the tmux support is intriguing...
One of the nice (newish) features if iTerm2 is the ability to store your config in Dropbox (or other arbitrary location). This means that all the machines I use have an identical configuration.
What converted me to iTerm was using Vim with a decent color scheme (e.g. Solarized or Base16). Even though supposedly it's possible in Terminal.App, I could not get it working (Mavericks). After hours upon hours of trying, and retrying, I gave up (in?) to iTerm because it just worked.
I do prefer Terminal.App. To me it feels more polished and stable and I'm used to it and it comes with the OS. I appreciate iTerm and the work put into though and it's what I currently use, but if I could get my Vim setup working in Terminal.App I would switch back.
Similar experience. I could never get Vim color schemes to work properly in Mavericks, despite many attempts.
I've been using Terminal on Yosemite, and for what it's worth, the Solarized theme works properly. I'd forgotten how much trouble it was in the past.
My current setup is to run tmux inside Terminal, with the 'Option as Meta key' flag enabled. Then configuring tmux to use Option-A (instead of Control-B) preserves the standard emacs shortcuts. So Control-A and Control-B still work to move to the beginning of the line and back a character. Mapping Control to Cap Locks, and using Option-A for tmux has served me well so far.
I agree that Terminal seems more polished (start up time and ability to keep up with typing speed - iTerm seemed slightly laggy compared to Terminal). But I'll give iTerm another try - the configuration options are impressive.
I use Terminal almost exclusively in full-screen mode, and iTerm allows me to do just that.
And no, Terminal.app does not have full-screen mode that is useful. Lion-style fullscreen apps are absolutely useless to me, since you can't bind them to ctrl-[1-9] hotkeys to switch between spaces.
I might have a workaround for you! I use a launcher for OS X called 'Quicksilver'. It's free and absolutely changed the way I approach computing (at the speed of thought, not the speed I can aim and click icons on my screen) and one of the handiest features Quicksilver let's you configure is called 'triggers'. Triggers are system-wide shortcuts that run a quicksilver command. So I have a quicksilver trigger for EVERY application I use.
Any time I hit my special trigger key combination, it will 'launch' that app. If it is open it gives it focus, and if it is not running it opens the app. This means I can rearrange my apps and desktops however I like and I always instantly travel to the app I want next.
Terminal is command-shift-I anywhere. Chrome is command-shift-c for example. Firefox is command-shift-f. Let's say I'm editing an HTML file over ssh and I want to test it. It doesn't matter whether chrome or Firefox are running, full screen, on the same virtual desktop, if I strike command-shift-c Chrome is instantly in front of me. I flip between programs all day and don't use my dock except to empty trash (and yes I know command-option-shift-delete but that is living on the edge!)
I do the same with spaces and Divvy. I have 8 spaces.
Space 1 is full screen browser.
Space 2 is full screen terminal.
Space 3 is full screen music app.
Space 4 is full screen mail.
Space 5 is full screen code editor.
Space 6 is IM/Twitter.
Spaces 7-10 are used as needed.
It works just fine, I know where every app is, so I just go directly to that space with ctrl-$SPACENUMBER
Now, note that I say full-screen, I mean "with menu bar visible, maximized using Divvy." I can't use system-provided full-screen API, because I lose ability to use only keyboard to navigate around.
Yes! This is almost exactly what I do, except s/command/control/, and I'm using Alfred instead of Quicksilver.
Not sure if Quicksilver has this, but one nice feature is that if, say, Chrome is currently active, and I hit its key-combo (control-shift-c), Chrome is hidden (the equivalent of command-h). This is great if you're installing something in the background and want to see if it finished without reverting back to the dark ages of command-tab.
It's especially nice on a laptop, because I can expand all my windows to fill the screen while still having near-zero overhead when switching between apps.
> Any time I hit my special trigger key combination, it will 'launch' that app. If it is open it gives it focus, and if it is not running it opens the app. This means I can rearrange my apps and desktops however I like and I always instantly travel to the app I want next.
What if I have 6 full-screen Terminal windows (connected to SSH servers, tmux sessions, and so on), and I need to switch between them? Your comment prompted me to install Quicksilver, but it doesn't seem like it can handle that. I'd be glad to hear if I'm wrong.
Smarter "dobule-click to select" logic. iTerm seems to highlight exactly what I want when I double-click in the area. Last I tried Terminal, it missed the mark.
Select to copy. I know some people can't understand why anyone would want this, but I've become accustomed to it. One thing that does still annoy me, even with iTerm, is that I find after I select something I need to move my mouse for it to copy.
I imagine 256 color support was a deal breaker before Lion, but I'm still an iTerm guy because of those reasons above.
Yes, select to copy a thousand times. If you're used to xterm, this is invaluable, especially if you're then just pasting the selection into another terminal with middle click. It saves many mouse/keyboard transitions.
I second this. I'm using Terminal.app for years now, dabbled with iTerm from time to time, but just couldn't see any advantage; since Terminal.app allows me to save window layouts and customize colors - so far, it's all I need from my Terminal emulator. The rest is the shell's job.
Mouse reporting. You can scroll text with mouse wheel, you can click on text and move the cursor there, so you can have say vim essentially behave like graphical vim (silly example I know, but still it's useful to some people). You can resize vim split windows with a mouse.
iTerm exports its color profile as shell variable, so you can have vim adjust its color theme to match the terminal theme.
It has better full screen support.
It has support for foreground/background color of the text the cursor is over, which Terminal.app does not have at all. This is why in vim if you cursor is over syntax highlighted element whose color is similar to the cursor color, it become incredibly hard to tell where the cursor is (esp. on large screen).
iTerm has "highlight cursor feature", to quickly show you where the cursor is (CMD+/). This is useful if you went away from the screen for a while and you come back, and can't immediately spot the cursor.
iTerm has better font rendering (more like GUI Vim) because it is a Cocoa view.
iTerm allows you to split terminal windows both horizontally and vertically.
The list goes on, but these are some highlights. Essentially, you have more control over your terminal.
> Deep tmux integration. iTerm2 can speak directly to tmux and display its virtual windows as native windows or tabs, making tmux much easier to navigate.
I actually prefer Terminal.app otherwise, but the tmux integration is so good it's worth it just for that.
- Good fullscreen support. Normal terminal can only go into "Lion fullscreen" which means it will be on a separate workspace and you can't have other windows besides it.
- Configurable keyboard shortcuts
There is a bug in terminal.app that manifests itself when you ssh to remote servers, launch something like tmux, disconnect, and try to resize the window[0]. The bad part for me is that this happens every time I leave my desk (the terminal resizes to the laptop screen size, and my usb ethernet dongle gets disconnected).
* search starts from the bottom of the buffer (most recent result).
* I can cmd+click filenames with line number (in error messages) and have them open in my text editor with cursor on the right line.
* notifications when background tab becomes idle - notifies about finished long-running builds/installations, etc.
* much better, customizable keyboard shortcuts. Supports meta keys properly. I have keyboard shortcuts for opening a tabs connected to my servers, disabled annoying "Print" shortcut, etc.
It was a very basic thing that caused me to switch: Being able to use Cmd-1, Cmd-2, Cmd-3, etc to switch tabs (Terminal.app only does this for windows, not tabs).
The built-in tmux session stuff is fabulous. Makes me never want to use normal tmux again.
I also quite like that iTerm allows non-Lion full screen mode. That combined with some tasteful transparency lets me see stuff happening while I'm poking around at the command line. It's nice to visually see the result of a Control-C or the relaunching of a web server.
I use it exclusively for the visor mode. Which I have set up to be like full screen mode on a laptop, but is limited to half the screen when I plug into an external monitor. It's also bound to show/hide on ctrl+`.
Unlike most others it seems, I don't utilize the tmux integration, despite using tmux heavily.
I found that iTerm provides a slightly better experience with Vim: colorschemes were rendered more accurately and redraw performance was improved (most noticeable when scrolling the window line-by-line with CTRL-E and CTRL-Y).
However, MacVim improves again on those two points, so I end up using that.
I switched to iTerm.app at the same time I switched to Vim only because Terminal.app didn't support 256 colors at the time. Although Terminal.app now supports 256 colors (it's been 3 years) I got used to iTerm.app and just keep using it out of habit.
I switched because of the Yakuake/Guake/Quake 3 console like functionality it has. I don't live in the terminal but need it constantly, hitting <C-`> is easier than ⌘-Tab-ing until I find the right window.
> I switched because of the Yakuake/Guake/Quake 3 console like functionality it has.
I made the switch from Terminal.app myself when iTerm finally added the feature, but Terminal.app had this functionality available via a SIMBL plugin (oh man, remember those?) called "Visor" for several years, but it was always a hack that would stop working for a few weeks/months whenever a new version of OS X was released.
It looks like Visor has now been replaced with TotalTerminal, another hack in the form of a wrapper application bundle: http://totalterminal.binaryage.com/
Small things like a sane full screen shortcut and easily turning off those godawful window animations that make you feel like your mind has been trapped in someone else's powerpoint presentation.
This has always kept me coming back to iTerm. (The configurable word separators is handy too. Obviously the people that work on Terminal.app don't have many files with hyphens in them, but I seem to have loads.)
What changed you from "terminal.app is good enough" to "I prefer iTerm"?
Because that's what I'm asking myself.