Para copiar texto para a área de transferência do X no tmux, o que eu faço atualmente é:
- vai o modo de seleção com o prefixo [
- inicie a seleção com espaço (usando
mode-keys vi
btw)
- selecione o texto e pressione enter
- copie o buffer do tmux para a área de transferência do X usando o prefixo ctrl + c
(Eu tenho um mapeamento como bind C-c run "tmux show-buffer | xclip -selection clipboard -i"
Estou tentando eliminar algumas dessas etapas fazendo um mapeamento para o modo de seleção. Eu tentei:
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
que me dá e erro:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(não consegui copiar o erro)
como posso corrigir isso?
EDIT: Eu percebi que posso selecionar e copiar para o buffer tmux (3 primeiros passos) usando o mouse como uma seleção regular (embora o destaque não dure, ele ainda seleciona o texto) e então use a seguinte ligação para copiar para x clipboard:
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(usei este método para copiar este texto e foi fácil;)
observe que -n
denota "sem prefixo", portanto, nenhum escape é necessário. se você não se confundir com o ponto alto, isso é análogo à cópia normal (interface de usuário comum).
este é o melhor que eu tenho até agora.
EDIT2: acabou ctrl + c sobrepõe-se a uma coisa de interrupção de processo, por isso mudei para ctrl + alt + c por agora. (não gostou muito)
EDIT3: tmux 1.8 ou mais suporte adicionado para adicionar atalhos de teclado no modo de cópia, agora minha primeira intenção original é possível usando algo como:
bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
Estas duas ligações tornam possível copiar texto para a área de transferência quando eu usei enter ou y para finalizar a cópia.
Eu ainda mantenho esta linha no caso de eu fazer a cópia com o mouse e decidir pegar o conteúdo do buffer do tmux para a área de transferência mais tarde:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"