top | item 8035022

ITerm2 2.0

584 points| gnachman | 11 years ago |iterm2.com

230 comments

order
[+] jwr|11 years ago|reply
ITerm is great. It really is. But I wish more time was spent on optimizations. People these days seem to forget that terminals are often used for displaying huge amounts of rapidly scrolling text and that speed is of paramount importance.

To put this in perspective, my computer has two CPUs with 4 cores each, 24GB RAM, a graphics card with 1600 Stream Processing Units (engine running at 850MHz) and 1GB of RAM, and yet it scrolls text in a terminal slower than my 386 machine 20 years ago.

[+] gnachman|11 years ago|reply
I did a lot of work on performance which you can see in the nightly builds; it was too risky for the 2.0 schedule. We now parse the input stream in a separate thread from where it is rendered. That being said, while the refresh rate is probably lower than it was on your '386, the throughput is undoubtedly higher. If you'd like a higher refresh rate, it's a trivial tweak to a single constant, but in general throughput is more useful.
[+] tinco|11 years ago|reply
Not just fast scrolling text. For some reason there is a noticeable delay when just typing text into a shell in iTerm. I didn't notice it until one day I started Terminal.app for no reason at all, and typing in it gave me that feeling that it was predicting my keystrokes, meaning of course that my brain expected a lag that wasn't there.
[+] rjzzleep|11 years ago|reply
i had the same beef with it and i went back to using xquartz with dwm and urxvt.

The reason why it's so slow is very simple. It's basically an nstextview derivate.

To be fast it needs to fill the buffer and render it offscreen in fixed intervals. a lot of osx programs share this problem. there was an ancient vnc viewer called vncthing that easily beats every osx vnc viewers performance, because of that.

[+] acdha|11 years ago|reply
I've tried iTerm and a few other alternatives periodically over the years and I keep coming back to Terminal.app for performance and stability. It'd be interesting to see how far a performance sprint could take iTerm…
[+] yoblin|11 years ago|reply
Performance actually seems to be much better in the new version! My standard test is to open a split-screen tmux session and try scrolling man pages.. New version doesn't jump around the page.
[+] sir-pinecone|11 years ago|reply
This might be an unrelated problem, but I find that when I copy a large amount of text and paste it into iTerm, it takes a long time to paste. This often happens when pasting into Vim, so it could be a vim issue. For example, copying the code of a Javascript library. When I do this in a text editor outside of iTerm, it's nearly instantaneous.
[+] thatmiddleway|11 years ago|reply
Did you try out the new iTerm? I was having issues like this, and started using the iterm nightlies about 8 months ago. I've seen considerable performance improvements, and now prefer it over Terminal.app.
[+] rbanffy|11 years ago|reply
While text performance is important, when I have to scroll through huge amounts of text it's usually because I made a mistake. If the output of my "fgrep -ri" is too long, it's also useless and I'd better pipe it to another grep or use a better regex.
[+] beltex|11 years ago|reply
Awesome, congrats on the release!

Aside: Check For Update... still gives 1.0.0.20140629 as the latest version. Have to download a 2.0 build explicitly.

http://www.iterm2.com/downloads.html

[+] duskwuff|11 years ago|reply
You have to switch off development releases to get 2.0.
[+] PaulMest|11 years ago|reply
One feature I really wish iTerm2 2.0 would have introduced was better session restoration support. With Terminal.app, you can issue a command like 'ls' and then quit and re-open Terminal.app and the previous output from 'ls' shows up. This is incredibly useful when you have to restart or if your system crashes and you have some output that you wanted to preserve.

I see from the changelog that some type of restoration has been included: "Support for OS 10.7 features including fullscreen, retina graphics, and window restoration"... but upon actually trying it out, it doesn't do what Terminal.app does.

[+] kybernetyk|11 years ago|reply
> One feature I really wish ...

It's open source. Why don't you add it yourself?

I wanted a borderless terminal and as I couldn't find one I hacked the functionality into iTerm: http://i.imgur.com/jOc04sf.jpg

/edit: Wow, being downvoted for suggesting to hack something yourself on Hacker News ... that's a new one. I guess I'll take a time out.

[+] gnachman|11 years ago|reply
Nope, no restoration support yet. I'm concerned about the performance hit.
[+] klausa|11 years ago|reply
I assume it pertains to Lion-style window restoration. Before 10.7, when you restarted your computer, you had to open each and every app (and every window!) again.

Since 10.7, system (assuming the app cooperates, that is) does that for you and reopens everything.

[+] lukasm|11 years ago|reply
Agree. Session restoration is really great. I would go further, though. I use `source` for virtualenv and it would be awesome if terminal could restore that as well.
[+] ibisum|11 years ago|reply
One problem I have with this is that its a massive security hole. Where does the output get stored? If its in an encrypted file, okay .. but if not: deal breaker.
[+] clin_|11 years ago|reply
You can get session management by using tmux integration.

Terminal.app almost certainly does not do what you're describing by default.

[+] hayksaakian|11 years ago|reply
to HN:

What changed you from "terminal.app is good enough" to "I prefer iTerm"?

Because that's what I'm asking myself.

[+] dkhar|11 years ago|reply
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.

[1] officially http://zsh.sourceforge.net/, but you want http://ohmyz.sh/

[+] AlexMax|11 years ago|reply
For me it used to be two reasons:

* 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.

[+] tern|11 years ago|reply
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.
[+] b3b0p|11 years ago|reply
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.

[+] klausa|11 years ago|reply
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.

[+] themckman|11 years ago|reply
2 things that do it for me:

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.

[+] ricardobeat|11 years ago|reply
Better mouse cursor support, split panes, cmd+click to open file path.
[+] roeme|11 years ago|reply
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.

So what is it?

[+] Osmium|11 years ago|reply
For me, it's just:

> 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.

[+] gitaarik|11 years ago|reply
- 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

That's reason enough for me...

[+] teddyknox|11 years ago|reply
The developers seem to really be promoting their deeper support for tmux integration. I'm probably what you'd call a tmux noob, but after a few months of using it on its own with minimal key remappings, I feel like my efficiency with the keyboard-only UI has already surpassed any gains I might get from sticking tmux integration with mouse support and tmux shortcuts. It's not that I'm opposed to this integration, but that I don't think it goes deep enough.

Ideally, I think tmux would be inseparably integrated with the terminal emulator, with no shims to add complexity to the UI. For instance, it irks me that the workflow for integrating iTerm with tmux is running `tmux -CC` and then leaving that window open in the background for as long as it runs. I'm bothered by the fact that I have to run a command to begin the integration in the first place. Wouldn't it be better to check a box in preferences that says "Integrate with tmux if tmux is installed" and then from then on make sure that the tmux concepts of sessions, windows, and panes deeply align with corresponding concepts with iTerm?

[+] dangayle|11 years ago|reply
Besides Firefox, iTerm2 is my most used app, by far. I love the customizability of it, the Visor mode, and how stable it it to work with. I've used it so long, I don't even remember why I don't use Terminal.app any more.
[+] IgorPartola|11 years ago|reply
So did everyone here just download this piece of software over HTTP (no HTTPS)? Why is it that large projects like this cannot spend 15 minutes setting up hosting over HTTPS-only using a $10 (or even free) SSL cert? I love me some iTerm but yikers.
[+] kator|11 years ago|reply
I love iTerm, couldn't live without it.. To me Terminal.app isn't much better then PuTTY on Windows.

That said I'm a bit worried when I read stuff like "manipulate the pasteboard remotely" and "performed when text matching a regular expression is received". Are these potential security concerns and/or what is the performance impact of regex'ing every single line of text etc?

[+] chipotle_coyote|11 years ago|reply
Naive question, but I keep trying iTerm and not being able to quite figure out why I should switch. In the mid-2000s it was a much better program than Terminal.app, but that doesn't seem to have been true for quite some time. Terminal.app has tabs, 256-color mode, themes, full screen support, and as people have mentioned in other comments, session recovery and much better performance. The only things I can think of offhand that that leaves in iTerm's court -- at least in the 1.x series -- is tmux integration and autocompletion. The latter I've never seen the point of (my shell does that pretty well, thanks) and after trying the former it seemed like it was more bothersome than just letting tmux handle everything on its own.

Okay: iTerm can put borders around its windows, which one of my friends says Terminal.app's inability to do makes it unusable for him. But beyond that, I just haven't been sold. (If that's the right phrase for free software. You know what I mean.)

[Edit: I think the tmux integration was a 2.x-dev feature, so I must have been using that. IIRC, I actually preferred tmux's own "window" handling.]

[+] gnachman|11 years ago|reply
Remote pasteboard twiddling is guarded by an off-by-default preference (prefs>general>allow clipboard access to terminal apps). Triggers are user-defined; while most people use them to change text colors, you are given enough rope to hang yourself, so be careful when creating a trigger that runs a command.
[+] philsnow|11 years ago|reply
PuTTY on windows is a fantastic terminal emulator, certainly the best one available for windows that I'm aware of.

Despite all the configurability, it still feels quite minimalistic. A single fullscreen PuTTY window is my favorite way to use a windows machine.

[+] stephenitis|11 years ago|reply
I like the idea of triggers. auto-highlighting the following regex's makes life a bit better whille reading logs and traces.

.[eE](rror|xception). highlight error lines :\d+ highlight line numbers in ruby (captures bits of time stamps though...) [lL]ine \d highlight line numbers in python

I bet there are more creative uses. please enlighten me.

[+] tlrobinson|11 years ago|reply
Is there a good tiling window manager for OS X that has a feature like iTerm2 where I can drag and drop a tab on top of another to split it, and keep those windows together?

I use Moom (previously Divvy) but they only really give you hotkeys for moving windows around. Xmonad for OS X seems difficult to setup, and I'm not even sure if it does what I want.

[+] joshpadnick|11 years ago|reply
First, thanks for releasing this! Second, silly question, but what is the recommended way to navigate long commands? Is there a way to click my cursor to a specific point, or a keyboard shortcut to navigate large blocks of words? I tried OPTION+LEFT-CLICK, but sometimes it will have the effect of moving my history to the current command.
[+] girvo|11 years ago|reply
I have Alt + Left and Alt + Right set to send `^[ b` and `^[ f` which are set to move backwards one word in most readline-based apps (IIRC).
[+] macinjosh|11 years ago|reply
Just tried out the tmux integration. Seems to be extremely buggy. The tmux session would randomly detach and you have to have an extra window open the entire time you are using the tmux integration. Nice idea but the execution seems pretty hacky.
[+] canadev|11 years ago|reply
So, I have this bash script that runs AppleScript that I use to start up a bunch of servers at once, each in their own Terminal tab. At the heart of it is this 'new-tab' function[1]. I don't really like AppleScript, and would like to not use it.

Can I duplicate this functionality using iTerm, without using AppleScript?

[1] Here's the code; I cobbled it together from some StackOverflow snippet or something: https://gist.github.com/anonymous/f16a46c327a14ec8a5b5

[+] nasalgoat|11 years ago|reply
I'm still using version 1 of iTerm because it has the side dock menu, which allows me to maintain a list of the various servers I'd want to connect to, and allows me to close sublists I don't need to see.

The last time I looked at iTerm2 it had a separate window where you had to TYPE the name of the server you wanted, which is WAY more work than pointing and clicking a single name in a side list.

The developers seemed to think the old side dock was bad and refused to add it back in.

[+] chetanahuja|11 years ago|reply
iTerm is what the Terminal.app should have been. Thanks to the devs for your work.
[+] itafroma|11 years ago|reply
Dang, looks like there/s still no preference to disable creating a new window when iTerm launches or is clicked on in the Dock. I only ever use iTerm via system-wide hotkey (i.e. Quake-style HUD mode), and it's kind of annoying that it automatically creates a duplicate window whenever it launches that can't be hidden via the hotkey.
[+] jestinjoy1|11 years ago|reply
Do we have something similar in GNU/Linux?