I’ve found the performance of iTerm in particular to be far inferior to builtin, especially when the buffer grows large. iTerm even has a fixed buffer size by default and still has worse performance.
Alacritty is supposed to be fast, but then doesn’t support any scrolling, has a poor window resizing flow, and doesn’t have tabs. The suggestion is to use tmux for all that, but then Alacritty+tmux is slower than builtin.
- “performance” above means smoothness of scrolling and general “perceived performance” type things. Haven’t actually tried any real tests.
Heck, I about dumped OS X when Apple changed the default application opening method. It used to be that when an application was loading and you switched to another window, the application opened behind what you were now working on. Or if you were working on something and another application in the background opened a window, you only got the jumping icon to let you know.
Today, applications can hijack focus pretty much whenever they want, aping one of Windows' most annoying UI features.
I use tmux coupled with that, btw.
Alacrity is just an experiment at the time.
For example, on double click the Terminal.app will select `path.txt` from `some/long/path.txt`. iTerm will select the whole thing and copy it to the clipboard.
It was nice, though.
I usually enable the readline style keybindings system wide (move character forward/backward, move word forward/backward) using a custom DefaultKeyBinding.dict — but then typically have to figure out workarounds for programmer type applications which try to resupply these shortcuts expecting the keys to be bound to random Unicode characters rather than already rebound to the actions ... as I recall — with my customization the keybindings don’t work by default in iterm2 and I had to go in and change something to get the correct behavior (fortunately there is an option). Many programmery type applications have the same issue (fortunately it’s mkstly possible to customize them all).
So it’s stjll possible to get the emacs keybindings at all text inswertion points systemwide — but it’s a hassle... In the glory days of OS X — pre 10.5, none of this was necessary — option-f option-b etc were just bound to the right thing by default rather than printing pointless Unicode characters ... I’m still annoyed by that change and by the fact that a bunch of complicated configurations are required to get the right behavior nowadays ...
For me it's simply that I couldn't get custom colors (e.g., the Solarized Dark theme) to display correctly with built-in Terminal. I haven't tried in 5+ years though -- maybe it's fixed now, and/or maybe I was doing something wrong at the time. But iTerm "just worked", and I never noticed performance issues so once I switched I never looked back. shrug
* tmux integration. Whether I'm in a remote server or my own machine, just use -CC and I can now use tmux with the same keybindings I would use without tmux.
* Watch for the completion of a command. Especially useful if you happen to be using a language with a slow compiler like Haskell or Rust. Plays a nice ding when the command is done. (This may require shell integration).
* Even if you forgot to run your command with time, iTerm can still tell you the wall clock time of your command. (Shell integration too).
And then just small things that the builtin Terminal doesn't have:
* focus follows mouse * smart selection (for example it could detect a URL and you can select the whole URL, then command-click to open) * copy on select
defaults write com.apple.Terminal FocusFollowsMouse -bool true
[0] https://stackoverflow.com/questions/98310/focus-follows-mous...I use it mostly when working through SSH on the go and with slow connections.
CMD+O brings up the profile switcher, type the tag I want and hit enter.
Profiles let you configure cwd, commands to run (virtualenv activation), theme colours, and a bunch of other things.
My “prod” profile ssh’s into a management box, sets the background to pink, and puts a “PROD” badge in the top right corner.
I don't really miss any iTerm features. Have to look up what's new!