I never understood the appeal of iTerm2. The built-in terminal app can do basically all the same things except tiling, but there’s always tmux if you need that.
- Visual bell, can show me when something has finished running
- Great incremental search, with regex supported
- Instant Replay, to allow time travel through anything erased from the terminal (like TUI screen repaints)
- Global search through all open terminals
- Triggers can highlight particular text when outputted on any terminal when a regex is matched
If using the Toolbelt feature :
- Keep track of your paste history
- Allows the use of text snippets to save typing long commands
on remote hosts where you can't define an alias
- Show running background jobs and send them signals
If using shell integration:
- Directory name picker based on frecency, which is useful for adding directory names when composing long commands or to jump to a directory when using Zsh (which lets you omit the 'cd' command).
- Hotkeys to jump back to the points of the commands entered, to avoid scrolling back through pages of console output to find the beginning of a command
+ Can open windows and tabs in a preset arrangement
+ Can choose from multiple arrangements across multiple displays
+ Tells me if there's a newline in what I'm about to paste
+ Exports its config to a JSON file in a place I choose
+ I can remove the tab close buttons to prevent a misclick (I'm clumsy)
+ I can change tab colours from a shell script
+ Multiple profiles
+ Text spacing both horizontal and vertical can be tweaked
+ I can log everything displayed and typed in my terminals, for later searching
+ I can disable cmd-clicking on URLs
Terminal.app is a solid piece of software, but it hasn't been updated in an age. It only supports 256 colors, where most terminals support truecolor. It's also a lot slower than other terminal software, as it doesn't do gpu rendering. And there are a number of extensions which are common in modern terminals, but are not supported in Terminal.app.
Granted, not everyone will notice or miss such features in their terminal.
You can also define custom clickable things via the "Smart Selections" feature. For instance I have all strings that match `\B#([0-9]{2,6})\b` open the page of that GH issue in my companies central issue tracker when they are cmd-clicked, and I have all strings that match `\bU\+([0-9a-fA-F]{2,6})\b` open up a details page for that unicode code point.
Terminal.app supports clicking URLs (cmd+double click). But what I want is to cmd+click (relative) file paths, with no URL scheme prefix. iTerm 2 supports this, and I miss it when I use Terminal.app.
I moved away from the Terminal because of lack of utf8 support, also I "needed" 24 bit color support - I was working on some silly 24b gradient progress bars at the time.
I've been a happy Kitty user for some years now. It requires a specific termcap, so foreign servers are a royal PITA, otherwise it is pretty nice.
One advantage is that you can define arbitrary margins for your terminal. Thus, you can make your terminal full-screen and write in vim with nice margins, instead of super-wide ones like in the default. Super-wide margins for text are ugly.
`tmux -CC` integrated to the native tab splits and the buffer. That's the killer feature for me. No other terminal emulator has it, not on Mac, not on Linux.