I've been using this replacement for Terminal.app while it's been in beta, and it's fantastic. It natively supports splitting, windowing, and tabs, and it has great keyboard shortcuts for navigation between all of your windows. It also has fullscreen mode (and top-of-screen mode) if you like to dedicate a Space to it. There's a Solarized theme for it if you're into that sort of thing. It supports Growl if you can't stand not being bugged about unnecessary information (or you can turn it off if you're the productive type).
This is the very first thing I install on a new Mac for development. I highly recommend it.
Terminal.app has tabs, at least as of Snow Leopard. Also does split panes (but they are the same session). I use Terminal quite a lot but have not found it lacking enough to consider replacing it.
That pretty much sums it up. I've set a global hotkey on ⌘+P to show iTerm on fullscreen (with all my tabs and custom configurations) and I love it =). Much kudos to the developers!
The "Instant-Replay" (View->Go back in time) can be a handy little feature if you've ever wanted to look up something that turns out not to be in the scrollback because it was a full-screen app running on the alternate screen buffer, or whatever. It's also good for checking out /when/ something happened, after the fact.
I've not used it much, but when I've needed to, it's been a lifesaver.
I'm used to either Visor or iTerm providing "instant" full-screen terminal access, but taking apps full-screen in Lion seems to involve a nearly tedious animation.
Granted, now that I think about it, I have seen a bug that makes Spaces-switching slow, so it's possible I'm just seeing the same thing in the full-screen animation.
To put it another way, the result is fine, I just don't like the transition.
> (Also, learn the difference between a terminal multiplexer, and a terminal emulator :p)
What difference the name makes? If this shiny new terminal emulator is touting something which a terminal multiplexer already does, from a user perspective, his reply is legit.
A terminal multiplexer is a way to create and access multiple ttys from a single terminal (-emulator). Both of the most widely known (GNU Screen and tmux) are terminal-only apps - They require a terminal or terminal emulator to act as their user interface.
Terminal emulators, as the name suggest, emulate terminals. Since most people don't tend to use dedicated VT100s any more, we use emulators like xterm, rxvt, Terminal.app, etc instead.
A mux without an emulator to access it is pretty useless, whereas an emulator with some mux features can provide benefits not easily achievable with a standalone multiplexer.
One example would be mouse-based text selection. Using vertical splits in tmux, and triple-clicking to select a full line will select the contents of both split regions, whereas a GUI app can limit it to one region. I'm sure there are plenty of other features.
> A terminal multiplexer is a way to create and access multiple ttys from a single terminal (-emulator).
Thanks. I know that and use screen, and the post we are discussing mentions tmux, so he knows it as well.
> whereas an emulator with some mux features can provide benefits not easily achievable with a standalone multiplexer.
The op was being snarky but that was the whole point. iterm2 doesn't seem to be giving something which we(in a generic sense; I use linux and have nothing to do with iterm) want and aren't already doing in the current emulator/multiplexer setup.
> One example would be mouse-based text selection. Using vertical splits in tmux, and triple-clicking to select a full line will select the contents of both split regions, whereas a GUI app can limit it to one region. I'm sure there are plenty of other features.
I don't use tmux but that's the behavior in gnu screen vertical split as well.
>> A terminal multiplexer is a way to create and access multiple ttys from a single terminal (-emulator).
> Thanks. I know that and use screen, and the post we are discussing mentions tmux, so he knows it as well.
You asked what the difference was. I told you.
>> whereas an emulator with some mux features can provide benefits not easily achievable with a standalone multiplexer.
> The op was being snarky but that was the whole point. iterm2 doesn't seem to be giving something which we(in a generic sense; I use linux and have nothing to do with iterm) want and aren't already doing in the current emulator/multiplexer setup.
Yes, I got that as well. My point is that it is in fact nothing at all like "tmux with an icon"; It's a terminal emulator, which happens to:
a) be better in various ways than hte Terminal.app that ships with OSX (256-color support, for a start. See upthread for many more).
b) have some features which overlap with dedicated terminal muxes, like tmux. If you look at the links I mentioned, the idea is to make iTerm recognise you're using tmux (even on a remote host), and translate its split panels into GUI split panels, amongst other things.
So yes, it does (or will) provide additional features.
>> One example would be mouse-based text selection. Using vertical splits in tmux, and triple-clicking to select a full line will select the contents of both split regions, whereas a GUI app can limit it to one region. I'm sure there are plenty of other features.
>I don't use tmux but that's the behavior in gnu screen vertical split as well.
Precisely. But iTerm2, being a GUI terminal emulator, can do that. That is a feature.
I didn't ask what the difference was. I asked what difference it makes what difference the name makes in context of knowing the difference between tmux and iterm2 - what is terminal emulator and what is terminal mux and what is a combo, as long as it gives me what I want.
I believe the discussion was centered around why would someone switch to iterm2.
I use it with tmux. The main reason I use it is because of its full screen support and the unixy behavior for focus follows mouse, copy on select, middle button paste.
Different behavior for left/right alt is a must for me:
- Left-Alt = Meta/+Esc
- Right-Alt = OS X Alt
I built an .inputrc/.zshrc so that text/word/line movements behave the same as in Cocoa text fields, like Ctrl+Left/Right and Alt+Left/Right.
Had I done that under Terminal.app, I would have given up on being able to type characters like | (Alt+Shift+L) or ~ (Alt+N) on my French keyboard, which would make a terminal much, much less useless.
funny i've been using iTerm2 for a while now and didn't knew it had split windows built in, main reason i used it was the speed, and it allowed me to have different scheme of colors.
Its a fork, and its basically completely different now. I reccomend giving it a try. I use it because of the more powerful keyboard binding, but it has many other features.
edit: no idea why i thought it was googles fork. corrected.
It's fast. iTerm 1 was __very__ slow, and if you code in vim (not gVim or MacVim) because you like to ctrl-Z/fg like me, you have to try iTerm 2. It's Terminal with a real fullscreen mode and the support of 256 colors. Plus some nice other things (autocomplete...).
The key binding configuration makes it pretty straightforward to use command as meta for things like bash readline without changing it system wide or a using separate key remapping program (a la keyremap4macbook). I also find the ability to pass messages to growl via escape sequences to be quite handy.
The one that does it for me is Cmd-1, -2, -3, etc. jumping to the first, second, third, etc. tab within the current window. Terminal.app's behavior is to jump to the window numbered that way -- often across spaces -- which would always drive me crazy.
I have a hard time changing functionality of the alt key between alt and meta. I Terminal.app I just go to preferences and it is there. Here it takes a little more..
Does the font rendering seem very different to anyone else? Using the same font (Anonymous Pro 14pt), I had to increase the vertical spacing from 1.0 (as it was in iTerm) to ~1.18 to get the same spacing. Bold is rendered differently (worse) too. It does seem quite a bit snappier on my old G5 though.
Off-topic: Something interesting about the aesthetics of text to point out here. I had to double-take which you said was left and which was right. I was sure that you were saying the left was iTerm2, because to me the one on the right has clearly superior text rendering (especially the bold)!
I don't use screen locally so when I ssh into boxes and use screen I'm not screen in screen and have to double-a. So I like tabs.
A feature that would be awesome (if it doesn't exist, by default at least it doesn't) is being able to have tabs per split.
OSX's window manager is so poor in my opinion that I would love to be able to have a full screen iterm2 but I like to have one terminal on the left and one on the right which has many tabs -- just helps with the cluster I'm dealing with. So without being able to have tabs only on the right split I have to use two iterm2s.
I mainly use iTerm2 because, unlike Terminal.app, it has gpm support. Being able to use a mouse while editing files over an SSH connection, without having to think about it, is a big win.
Great job developers of iTerm2, it's really a pleasure to use on a day to day basis, if only it had really cool integration with tmux so I could actually use tmux instead of hate on it.
I have been using tmux occasionally to, but the key mappings kill me. I just want it to be one stroke, not chorded...so what I want really is for an iterm window to behave like a tmux session, with tabs being windows etc
Wow, looks like they've fixed most of the problems I had with it in the past. The one thing I still miss from yakuake is to be able to select split-panes by numeric hotkey. Seems like you can only do it for separate tabs and windows, but my preferred workspace is a 2x2 visor window.
There's a feature request open for this. Haven't figured out the details yet, but I want to make it easy to assign a keystroke to a session (like how RTS games let you define groups of vehicles/soldiers). Maybe in 1.1...
It's an open feature request. The current issue is finding a way to do so efficiently. Adding a mouse tracking region for each link (and moving it every time you scroll) is impractical, and I'm not well enough versed in the display storage structures to know how easily you could get the bounding box of a link and hit-test for it without a performance hit.
1) I don't think you can change the colour, but you can adjust the dimming level with:
defaults write com.googlecode.iterm2 SplitPaneDimmingAmount -float 0.25 # [range from 0-1.0, lower is darker]
Maybe add a feature request for a 'inactive panes colour' widget to be added to the Profile colours tab.
NB: Changing the dim amount seems to require a restart of iTerm to take effect.
2) Set a global keybinding (Prefs->Keys-> + button) to 'Select Menu Item...' from the very bottom of the list, and specify 'Next Pane' (no quotes) in the text field.
I find iTerm/iTerm 2 invaluable for full screen mode, ability to turn off scroll bars (and still have a scroll back buffer--can't do this in Terminal.app and it kills me), and copy-on-select.
Awesome! iTerm + zsh...
If only I could disable the scrollbar :/ On a related note, is there a show/hide animation like Visor too? I liked the "slide in/slide out" animation a lot.
The visor-like mode is enabled if you dock it to a window-edge (prefs->profile->window tab, 'style = top of screen' setting). System-wide hotkey settings are in Prefs->Keys
There's also a 'hidden' setting for the animation delay, settable with
Is there a changelog somewhere obvious that I'm missing? It appears I've gone from 0.20 to 1.0, what am I getting here? The one in the source tree appears to be quite out of date.
I believe most of the features in their feature list were added since 0.2. I'm reading this now, and finding features that I've been needing and didn't realize they were done already.
There's Applescript support, so you could probably cobble together a script that'd launch your multiple windows & commands.
There's also Window->Save Window Arrangement, but I believe that only allows for a single arrangement.
Feel free to add a feature request at http://code.google.com/p/iterm2/issues/list (There's plans for eventually moving everything over to github, but the issues will get migrated too)
I'm working on improving the preferences UI and back-end, but I'm learning obj-c and Cocoa as I go, so it's a slowish process :)
I've created a quick fork of tmuxinator (originally used for defining sessions for tmux) to also generate iTerm setup scripts: https://github.com/dkastner/tmuxinator
iTerm2 currently supports a single group at the moment (called a Window Arrangement). If you need more than one, then applescript is your best bet for now.
http://code.google.com/p/iterm2/wiki/Credits has a comprehensive list of contributors, but (I think) the fork from iTerm to iTerm2 and vast majority of the development has been done by George.
Regarding the website, I'd guess a couple of people volunteered to make it shiny and accessible, but the docs and whatnot were (and mostly still are) on the googlecode project wiki.
You have to be kidding me, right? This app is so bloated and unpolished—it really doesn't feel like it belongs on the Mac. I'll take OSX Lion's sleek Terminal.app over iTerm any day. My favorite new feature, it lets you customize ANSI colors!
Edit: I know I'm going to get tons of downvotes for this. But it's my opinion that something sleek and simple is much more powerful than something with tons of bells and whistles, especially when it doesn't look very good.
Edit2: To all those who bring up window splitting, the default terminal app does it too, as well as native fullscreen:
I think only a few things in iTerm2 are really unpolished. That said, when a tool becomes part of how you do work for 14+ hours a day, feature-set and efficiency can matter more than simplicity and intuitiveness. After all, that's why we're using a command line in the first place! Terminal itself doesn't really "feel like it belongs on the Mac".
I wouldn't want to spend all that time in a terminal without native screen splitting, just to pick one example of a cool iTerm 2 feature.
Lion's terminal app is a beach ball nightmare on this machine. Hitting tab to complete a directory in bash results in a 3-second pause every time. Longer if the directory doesn't exist.
I wondered if it was my new SSD, but it doesn't happen in iTerm, so I guess not.
May I ask what is so bloated and unpolished? Back up your dribbling. I have been using iTerm for a while now and it's as fast normal Terminal. It has profiles. It has 256 colors so I can use the same VIM colorschemes.
I've been using it since last 7 months. This version definitely seems speedier, I'm talking about the lags in bringing up new tabs/windows in previous versions.
Moreover I love the simplicity of its key combinations - CMD + left right.
CMD+^+E -> A nice expose style overview for all your tabs.
This is the very first thing I install on a new Mac for development. I highly recommend it.