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
|
---
category: tool
tool: tmux
contributors:
- ["mdln", "https://github.com/mdln"]
translators:
- ["Luis Custodio", "http://luiscustodio.com"]
lang: pt-br
filename: LearnTmux-pt.txt
---
O [tmux](http://tmux.sourceforge.net)
é um multiplexador de terminal, ele permite que terminais sejam criados,
acessados e controlados a partir de uma unica instância. tmux pode ser separado
de uma tela e continuar rodando no plano de fundo e depois ser reacoplado à
instância (ou tela original).
```
tmux [command] # Roda um [comando]
# 'tmux' sem comandos irá criar uma nova seção
new # Cria uma nova seção
-s "Nome" # Cria uma nova seção com nome "Nome"
-n "Janela" # Cria uma janela com o nome "Janela"
-c "/dir" # Inícia em uma pasta específica
attach # Reacopla a última seção disponível
-t "#" # Reacopla a seção com nome "#"
-d # Separa (Desacopla) a sessaão de outras instâncias.
ls # Lista todas as seções
-a # Lista todas as seções abertas
lsw # Lista as janelas
-a # Lista todas as janelas
-s # Lista todas janleas em uma seção
lsp # Lista os painéis
-a # Lista todos os painéis
-s # Lista todos os painéis em uma seção
-t "#" # Lista os painéis baseado no nome "#"
kill-window # Encerrar a janela corrente
-t "#" # Encerrar a janela baseado no nome "#"
-a # Encerrar todas as janelas
-a -t "#" # Encerrar todas as janelas exceto a com nome "#"
kill-session # Encerrar seção corrente
-t "#" # Encerrar seção com nome "#"
-a # Encerrar todas as seções
-a -t "#" # Encerrar todas as seções exceto a com nome "#"
```
### Teclas de commando (atalhos)
A maneira de controllar uma seção tmux acoplada é através de uma
combinação de teclas de prefixo.
```
----------------------------------------------------------------------
(C-b) = Ctrl + b # Combinação de prefixos para usar comandos(atalhos).
(M-1) = Meta + 1 -or- Alt + 1
----------------------------------------------------------------------
? # Lista todos os comandos.
: # Acessa o lugar (prompt command) para receber comandos do tmux
r # Força a redefiniçao do cliente acoplado.
c # Cria uma nova janela.
! # Retira o painel corrente da janela.
% # Divide o painel corrente em dois para a esquerda e direita.
" # Divide o painel corrente em dois para cima e para baixo.
n # Move para a próxima janela.
p # Move para a janela anterior.
{ # Troca o painel corrente pelo anterior.
} # Troca o painel corrent pelo posterior.
s # Seleciona uma nova seção para o cliente acoplado iterativamente.
w # Seleciona a janela corrente iterativamente.
0 to 9 # Seleciona a janela de 0 à 9.
d # Separa o cliente atual.
D # Seleciona um cliente a ser separado.
& # Encerra a janela corrente.
x # Encerra o painel corrente.
Up, Down # Move para o painel acima, abaixo, a esquerda ou a direita.
Left, Right
M-1 to M-5 # Organiza os paines:
# 1) Horizontalmente de maneira igual
# 2) Verticalmente de maineira igual.
# 3) Principal horizontalmente
# 4) Principal verticamente.
# 5) Mosaico
C-Up, C-Down # Altera o tamanho do painel corrente baseado em uma célula.
C-Left, C-Right
M-Up, M-Down # Altera o tamanho do painel corrente baseado em cinco células.
M-Left, M-Right
```
### Configurando ~/.tmux.conf
Existe um arquivo chamado tmux.conf, ele pode ser usado para definir opções no
momento de inicialização, da mesma maneira que .vimrc, init.el, .bash_profile são usados.
```
# Exemplo de tmux.conf
# 2014.10
### General
###########################################################################
# Habilita UTF-8
setw -g utf8 on
set-option -g status-utf8 on
# Limite da história de comandos
set -g history-limit 2048
# Indíce de inicialização
set -g base-index 1
# Mouse
set-option -g mouse-select-pane on
# Recarregar o arquivo de configuração sem a necessidade de reiniciar o programa
unbind r
bind r source-file ~/.tmux.conf
### Teclas de atalho
###########################################################################
# Desvincular C-b como prefixo padrão.
unbind C-b
# Define um novo prefixo padrão.
set-option -g prefix `
# Definir prefixos que podem ser usados para voltar para a janela anterior.
bind C-a last-window
bind ` last-window
# Fazer com que F11 e F12 alterem o comportamento de C-a e `
bind F11 set-option -g prefix C-a
bind F12 set-option -g prefix `
# Preferencia de teclas de atalho
setw -g mode-keys vi
set-option -g status-keys vi
# Mover enter paineis com teclas de orientaçao do vim
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Iterar entre as Janelas
bind e previous-window
bind f next-window
bind E swap-window -t -1
bind F swap-window -t +1
# Iterar entre os painéis
bind = split-window -h
bind - split-window -v
unbind '"'
unbind %
# Habilitar a sub-seção a enviar comandos.
bind a send-prefix
### Theme
###########################################################################
# Paleta de cores para a barra de status
set-option -g status-justify left
set-option -g status-bg black
set-option -g status-fg white
set-option -g status-left-length 40
set-option -g status-right-length 80
# Paleta de cores para bordas do painel
set-option -g pane-active-border-fg green
set-option -g pane-active-border-bg black
set-option -g pane-border-fg white
set-option -g pane-border-bg black
# Palta de cores para mensagem
set-option -g message-fg black
set-option -g message-bg green
# Paleta de cores para janela de status
setw -g window-status-bg black
setw -g window-status-current-fg green
setw -g window-status-bell-attr default
setw -g window-status-bell-fg red
setw -g window-status-content-attr default
setw -g window-status-content-fg yellow
setw -g window-status-activity-attr default
setw -g window-status-activity-fg yellow
### UI
###########################################################################
# Notificações
setw -g monitor-activity on
set -g visual-activity on
set-option -g bell-action any
set-option -g visual-bell off
# Definir automaticamente o título de janelas
set-option -g set-titles on
set-option -g set-titles-string '#H:#S.#I.#P #W #T' # window number,program name,active (or not)
# Ajustes na barra de status
set -g status-left "#[fg=red] #H#[fg=green]:#[fg=white]#S#[fg=green] |#[default]"
# Mostrar indicativos de performance na barra de status
# Requires https://github.com/thewtex/tmux-mem-cpu-load/
set -g status-interval 4
set -g status-right "#[fg=green] | #[fg=white]#(tmux-mem-cpu-load)#[fg=green] | #[fg=cyan]%H:%M #[default]"
```
### References
[Tmux | Início](http://tmux.sourceforge.net)
[Manual Tmux (em inglês)](http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1?query=tmux)
[Gentoo Wiki](http://wiki.gentoo.org/wiki/Tmux)
[Archlinux Wiki](https://wiki.archlinux.org/index.php/Tmux)
[Mostrar CPU/MEM % in statusbar](https://stackoverflow.com/questions/11558907/is-there-a-better-way-to-display-cpu-usage-in-tmux)
Possui uma sugestão? Uma correção, talvez? Abra um issue no Repositório GitHub, ou então faça um pull request.
|