Here are some of my reasons for running tmux inside of iTerm:
* easy layout of panes (windows) in fullscreen mode. I have tmux macros setup to quickly get different pane layouts -- e.g. 65% left, then two vertical split panes in the remaining right 35%. Typically I run vim in the larger pane and then have two other panes for various other CLI stuff on dev systems. I have a number of other preconfigured layouts depending on what I'm trying to get done.
* tmux session can be detached/reattached. I've on occasion had iTerm crash or I've accidentally quit it (cmd-Q). With tmux, my session is still running, so I just restart iTerm and reattach...everything back where I left off. There is even a new-ish plugin for tmux that lets you save tmux sessions so that you can restore after restart. The reattaching also makes it low-overhead if/when iterm wants to update itself (admittedly rare).
* Once you get used to tmux navigation keys/commands, they will conceptually work on linux systems as well if you run tmux (more portable muscle memory).
If someone is launching only Vim from tmux, it possibly is an overkill.
I have stayed put with Vim, Tmux and shell, a very capable triumvirate. It allows one to build your own IDE.
Especially when your project may need some customization beyond an IDE.
Ex: I work on a python application which needs to support 4 different library versions (python wrapper over C++) and I have 4 venvs, for each version. I have a tmux session, with a pane for each venv, one vim, one tail etc. I tried for ex: PyCharm and every time I do python setup.py develop in each venv, there goes the IDE with all it's scanning stuff.
Comments
Not an OSX user, so maybe someone can explain: why launch Tmux just to launch Vim rather than launching Vim natively in iTerm?
Here are some of my reasons for running tmux inside of iTerm:
* easy layout of panes (windows) in fullscreen mode. I have tmux macros setup to quickly get different pane layouts -- e.g. 65% left, then two vertical split panes in the remaining right 35%. Typically I run vim in the larger pane and then have two other panes for various other CLI stuff on dev systems. I have a number of other preconfigured layouts depending on what I'm trying to get done.
* tmux session can be detached/reattached. I've on occasion had iTerm crash or I've accidentally quit it (cmd-Q). With tmux, my session is still running, so I just restart iTerm and reattach...everything back where I left off. There is even a new-ish plugin for tmux that lets you save tmux sessions so that you can restore after restart. The reattaching also makes it low-overhead if/when iterm wants to update itself (admittedly rare).
* Once you get used to tmux navigation keys/commands, they will conceptually work on linux systems as well if you run tmux (more portable muscle memory).
just my $0.02
If someone is launching only Vim from tmux, it possibly is an overkill.
I have stayed put with Vim, Tmux and shell, a very capable triumvirate. It allows one to build your own IDE.
Especially when your project may need some customization beyond an IDE.
Ex: I work on a python application which needs to support 4 different library versions (python wrapper over C++) and I have 4 venvs, for each version. I have a tmux session, with a pane for each venv, one vim, one tail etc. I tried for ex: PyCharm and every time I do python setup.py develop in each venv, there goes the IDE with all it's scanning stuff.
Tmux just lets me do what I want without getting in the way. And tmux-resurrect is a great addition. [1] [1]: https://news.ycombinator.com/item?id=10219003
I had the same question too. tmux is great when you don't have iterm available. You can split your terminal out into new sessions in iterm.
Well, tmux gives you a bit of features if you have to do anything else other than editing a file (ie: connecting via ssh)