Many at thoughtbot run their editor+shell combos inside of tmux. Some remote pair program with ssh, vim, and tmux.
Getting started with tmux, these are the questions I’ve had.
Install tmux, read the documentation, and fire it up.
brew install tmux man tmux tmux -u
Yes. We have these lines in
# improve colors set -g default-terminal "screen-256color" # soften status bar color from harsh green to light gray set -g status-bg '#666666' set -g status-fg '#aaaaaa' # remove administrative debris (session name, hostname, time) in status bar set -g status-left '' set -g status-right ''
The “prefix” namespaces tmux commands. By default it is
Ctrl+b. In our
thoughtbot/dotfiles, we bound it to
# act like GNU screen unbind C-b set -g prefix C-a
This was non-obvious to me.
Enter “copy mode”:
Use vim bindings to page up and down:
Add this to your
# enable copy-paste http://goo.gl/DN82E # enable RubyMotion http://goo.gl/WDlCy set -g default-command "reattach-to-user-namespace -l zsh"
Add this to your
tmux.conf to use vim’s home-row keys for movement between
windows and panes:
# act like vim setw -g mode-keys vi bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R bind-key -r C-h select-window -t :- bind-key -r C-l select-window -t :+
One day I might work on Airbrake. Another day, a client project. I’d like to name my tmux sessions so I can leave one, drop into another, and go back to the original with all my state maintained (files still open in my editor, console/logs I want open, etc.).
Create a new session:
tmux new -s airbrake
Attach to a session:
tmux attach -t airbrake
Create a window:
Move to window 1:
Move to window 2:
Kill a window:
I believe in setting my mouse free but it takes time for muscle memory to make this fast.
~/.tmux.conf, execute this from a shell:
tmux source-file ~/.tmux.conf
I’ve had a love-hate relationship with tmux in my first week using it, but the brief moments of flow I’ve experienced so far are enough to keep trying it.
Give tmux a shot and if you have any other tips, I’d love to hear them.