cheatsheets/tmux.md

145 lines
2.9 KiB
Markdown

---
title: tmux
category: CLI
updated: 2024-04-08
---
### Commands
$ tmux
-u # UTF8 mode
-S ~/.tmux.socket
#### Sessions
$ tmux new
$ tmux new -s session_name
$ tmux attach # Default session
$ tmux attach -t session_name
$ tmux switch -t session_name
$ tmux ls # List sessions
$ tmux detach
#### Windows
$ tmux new-window
### Help
C-b ?
### Scrolling
C-b [ # Enter scroll mode then press up and down, you can also scroll with mouse support enabled (`set -g mouse on` in `~/.tmux.conf`)
### Copy/paste
C-b [ # 1. Enter scroll mode first
Space # 2. Start selecting and move around
Enter # 3. Press enter to copy
C-b ] # Paste
### Panes
C-b % # vert
C-b " # horiz
C-b hkjl # navigation
C-b HJKL # resize
C-b o # next window
C-b q # show pane numbers
C-b x # close pane
C-b { or } # move windows around
### Windows
C-b c # New window
C-b 1 # Go to window 1
C-b n # Go to next window
C-b p # Go to previous window
C-b w # List all window
### Detach/attach
C-b d # Detach
C-b ( ) # Switch through sessions
$ tmux attach
### Search in buffer
C-b [ # 1. Enter scroll mode first, you can also scroll with mouse support enabled
C-s # 2. Enter search mode, type pattern then press Enter to start search
n or N # 3. Go to the previous or next match
C-c # 4. Exit search and scroll mode
### Niceties
C-b t # Display a clock, press any key to quit
## Status formats
```
setw -g window-status-format `#[fg=8,bg=default]#I`
```
See `message-command-style` in the man page.
### Attribute/colors
| Key | Description |
| --- | --- |
| `#[fg=1]` | standard color |
| `#[fg=yellow]` | yellow |
| `#[bold]` | bold |
| `#[fg=colour240]` | 256 color |
| `#[fg=default]` | default |
| `#[fg=1,bg=2]` | combinations |
| `#[default]` | reset |
### Colors
* `black` `red` `green` `yellow` `blue` `magenta` `cyan` `white`
* `brightred` (and so on)
* `colour0` ... `colour255`
* `#333` (rgb hex)
### Attributes
* `bold` `underscore` `blink` `noreverse` `hidden` `dim` `italics`
### Variables
| Key | Description |
| --- | --- |
| `#(date)` | shell command |
| `#I` | window index |
| `#S` | session name |
| `#W` | window name |
| `#F` | window flags |
| `#H` | Hostname |
| `#h` | Hostname, short |
| `#D` | pane id |
| `#P` | pane index |
| `#T` | pane title |
## Options
set -g status-justify [left|centre|right]
set -g status-left '...'
setw -g window-status-style
setw -g window-status-activity-style
setw -g window-status-bell-style
setw -g window-status-content-style
setw -g window-status-current-style
setw -g window-status-last-style
setw -g window-status-format
setw -g window-status-current-format
setw -g window-status-separator