...(iTerm being the main I've found) that do so, but they are otherwise not as well-built and useful as Terminal.app...
I would disagree, as I use iTerm2 every day, at work, all day long, as I'm a Unix file system developer and I live inside of a terminal emulator ssh'ed to half a dozen different Unix systems, with 4 iTerm2 windows open and about 30 active tabs.
iTerm2 is a wonderful terminal emulator.
While I advocate iTerm2 at work, I cannot get some developers to switch, so I end up trying to at least improve their Terminal experience, as some of them still treat the terminal emulator as just a keyboard and a screen from the days when it was just a dumb physical Digital Equipment Corporation VT100 terminal.
NOTE: Terminal is a much better terminal emulator than back in the Cheetah 10.0, Puma 10.1, Jaguar 10.2, Panther 10.3 days. It has come a long way, but I do not think a lot of developers in the macOS development group really use a terminal emulator. Where as, I think the people evolving iTerm2 actually use a terminal emulator.
Granted as an open source project, iTerm2 does tend to have the "Kitchen Sink" included, and sometimes navigating the preferences can be challenging.
Some iTerm2 features I find very useful:
- I can tell it what characters are part of a word, so double clicking can select a full path, and I do not need to do the click and drag to select a file path. A very frequent operation when working in a terminal emulator.
- I can have selected text automatically put into the clipboard. I do not need to Command-C. At best Terminal has a keyboard shortcut to paste the selected text, but that ONLY works inside Terminal. If I want to paste that selected text in an email or other document, I have to actually remember to Command-C first.
- The ITERM_SESSION_ID environment variable created for each window and tab includes unique Window number, tab number and split screen number, that my .bash_profile can use to match up my shell command history to that window/tab/split ITERM_SESSION_ID=w1t2p0:B2082A39-30BE-4840-BD7C-E40102753C10
- iTerm2 can control a remote tmux session using the regular iTerm2 menus to create new tmux sessions.
- When I specify an ssh command as part of a profile, I have an extra field I can use to specify the first command I want to run on the remote system, such as starting a tmux (or GNU screen) session, or entering a software development view. Very handy.
- I can easily assign a hotkey shortcut to a profile so if I need to create a new tab or window to remote system Q, I just hit the hotkey and I have a new tab or window ssh'ing to that system. This is much more difficult to setup for Terminal. Not impossible, but not obvious and not nearly as flexible.
- I can color my tabs, and there are iTerm2 escape sequences so I can change the tab color via programs and scripts running in my iTerm2 window/tab. Very handy when you have 30 tabs to have color clues.
There are other features I'm sure I depend on everyday, that just are just programmed into my fingers that I forget they exist. And as I said, it has a "Kitchen Sink" but I do not use every feature it has, as I do not need them.
So anyway, I disagree that iTerm2 is not as well built as Terminal. And I'm not saying Terminal is bad, just that iTerm2 has better features for a developer that lives inside of terminal emulators all day long. And iTerm2 has 24-bit color support 😀