srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/tools/tmux.md
blob: 2189e0aa7d92c2cc7570722371d046684bce86ac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
## Tmux Notes
#### Plugins
* Key bindings for tmux-resurrect  
`<prefix> + Ctrl-s` # save changed to 'W'  
`<prefix> + Ctrl-r` # restore changed to 'E'
* Installing plugins  
`<prefix> + I`  
then reload tmux environment with either:  
$ `tmux source ~/.tmux.conf`  
or if tmux config is in a XDG config base directory  
$ `tmux source ~/.config/tmux/tmux.conf`  
* Plugin uninstall  
Delete or comment out the plugin in .tmux.conf  
Then save and reload
- - -
#### Basic commands/keys
* List keybindings  
$ `tmux list-keys`  
or  
`<prefix>:list-keys`  
or  
`<prefix>:?`  

* Panes Management  
`<prefix>:swap-pane -U` # move current pane up or anti-clockwise  
`<prefix>:swap-pane -D` # move current pane down or clockwise  
`<prefix>{` or `<prefix>(:swap-pane -L)` # move current pane to the left  
`<prefix>}` or `<prefix>(:swap-pane -R)` # move current pane to the right  
`<prefix>q` # show pane numbers (type number to move cursor)  
`<prefix><Space>` # toggle pane arrangements  
`<prefix>Ctrl-o` # rotate window  

* Move cursor to next window  
`<prefix>o`

* Close Window  
`<prefix>&` or `<prefix>:kill-window` # kill window
- - -
#### SESSIONS  
* Start a new session  
$ `tmux`  
$ `tmux new`  
$ `tmux new-session`  
`<prefix>:new`

* Start a new session with the name ***mysession***  
$ `tmux new -s mysession`  
`<prefix>:new -s mysession`

* Kill/delete session mysession  
$ `tmux kill-ses -t mysession`  
$ `tmux kill-session -t mysession`  

* Kill/delete all sessions but the current  
$ `tmux kill-session -a`

* Kill/delete all sessions but mysession  
$ `tmux kill-session -a -t mysession`  

* Rename session  
`<prefix>$`  

* Detach from session  
`<prefix>d`  

* Detach others on the session (Maximize window by detaching other clients)  
`<prefix>:attach -d`  

* Show all sessions  
$ `tmux ls`  
$ `tmux list-sessions`  
`<prefix>s`  

* Attach to last session  
$ `tmux a`  
$ `tmux at`  
$ `tmux attach`  
$ `tmux attach-session`  

* Attach to a session with the name mysession  
$ `tmux a -t mysession`  
$ `tmux at -t mysession`  
$ `tmux attach -t mysession`  
$ `tmux attach-session -t mysession`  

* Move to previous session  
`<prefix>(`  

* Move to next session  
`<prefix>)`  

#### WINDOWS

* Start a new session with the name mysession and window mywindow
$ tmux new -s mysession -n mywindow

* Create window
<prefix> c

* Rename current window
<prefix> ,

* Close current window
<prefix> &

* Previous window
<prefix> p

* Next window
<prefix> n

* Switch/select window by number
<prefix> 0 ... 9

* Reorder window, swap window number 2(src) and 1(dst)
:swap-window -s 2 -t 1

* Move current window to the left by one position
:swap-window -t -1



* PANES

* Toggle last active pane
<prefix> ;

* Split pane horizontally
<prefix> %

* Split pane vertically
<prefix> "

* Move the current pane left
<prefix> {

* Move the current pane right
<prefix> }

* Switch to pane to the direction
<prefix> <Up>
<prefix> <Down>
<prefix> <Right>
<prefix> <Left>

* Toggle synchronize-panes(send command to all panes)
:setw synchronize-panes

* Toggle between pane layouts
<prefix> Spacebar

* Switch to next pane
<prefix> o

* Show pane numbers
<prefix> q

* Switch/select pane by number
<prefix> q 0 ... 9

* Toggle pane zoom
<prefix> z

* Convert pane into a window
<prefix> !

* Resize current pane height(holding second key is optional)
<prefix> + <Up>
<prefix> Ctrl + <Up>
<prefix> + <Down>
<prefix> Ctrl + <Down>

* Resize current pane width(holding second key is optional)
<prefix> + <Up>
<prefix> Ctrl + <Up>
<prefix> + <Down>
<prefix> Ctrl + <Down>

* Close current pane
<prefix> x



* COPY MODE

* Use vi keys in buffer
:setw -g mode-keys vi

* Enter copy mode
<prefix> [

* Enter copy mode and scroll one page up
<prefix> PgUp

* Quit mode
<q>

* Go to top line
<g>

* Go to bottom line
<G>

* Scroll up
<Up>

* Scroll down
<Down>

* Move cursor left
<h>

* Move cursor down
<j>

* Move cursor up
<k>

* Move cursor right
<l>

* Move cursor forward one word at a time
<w>

* Move cursor backward one word at a time
<b>

* Search forward
</>

* Search backward
<?>

* Next keyword occurance
<n>

* Previous keyword occurance
<N>

* Start selection
<Spacebar>

* Clear selection
<Esc>

* Copy selection
<Enter>

* Paste contents of buffer_0
<prefix> ]

* Display buffer_0 contents
:show-buffer

* Copy entire visible contents of pane to a buffer
:capture-pane

* Show all buffers
:list-buffers

* Show all buffers and paste selected
:choose-buffer

* Save buffer contents to buf.txt
:save-buffer buf.txt

* Delete buffer_1
:delete-buffer -b 1



* MISC

* Enter command mode
<prefix> :

* Set OPTION for all sessions
:set -g OPTION

* Set OPTION for all windows
:setw -g OPTION

* Enable mouse mode
:set mouse on



* HELP

* List key bindings(shortcuts)
$ tmux list-keys
:list-keys
<prefix> ?

* Show every session, window, pane, etc...
$ tmux info