Para copiar texto para a área de transferência do X no tmux, o que eu faço atualmente é:
- vá para o modo de seleção com prefix[
- inicie a seleção com space(usando
mode-keys vi
btw) - selecione o texto e pressione enter
- copie o buffer tmux para a área de transferência do X usando prefixctrl+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"
o que me dá e erro:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(Não consegui copiar o erro)
Como posso consertar isso?
Edição: Percebi que posso selecionar e copiar para o buffer tmux (primeiras 3 etapas) usando o mouse como uma seleção regular (embora o destaque não dure, ele ainda seleciona o texto) e use o seguinte vínculo para copiar para a área de transferência x :
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(Eu usei esse método para copiar este texto e foi fácil;)
note que -n
denota "sem prefixo", portanto, não é necessário escapar. se você não ficar confuso com o destaque desaparecido, isso é análogo à cópia comum (interface de usuário comum).
este é o melhor que eu criei até agora ..
EDIT2: acabou ctrl+csobreposições com coisa de interrupção do processo, então eu mudei para ctrl+alt+cpor enquanto. (não gostei muito)
EDIT3: tmux 1.8 ou mais suporte adicionado para adicionar combinações de teclas 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"
Essas duas ligações permitem copiar o texto para a área de transferência quando eu usei enterou ypara concluir a cópia.
Eu ainda mantenho essa linha no caso de fazer a cópia com o mouse e decidir obter o conteúdo do buffer tmux para a área de transferência posteriormente:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"
fonte
stty intr=^Z
. Cuidado com esse comando, é possível definir um caractere regular para ser o caractere de interrupção (se você fizer isso, use ctrl-v para inseri-lo até fixar a configuração). E não fique confuso sobre qual tecla é usada (por exemplo, ctrl-z é normalmente a tecla de suspensão).^c
a chave de interrupção, pois a uso com mais frequência do que copiar. Também atualizei a resposta para refletir minha solução atual para esse problema.bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
ao vivo dá:Unknown command: run
bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"
funciona bem.Respostas:
Esta resposta não responde diretamente à sua pergunta sobre a criação de um atalho. Mas aqui está o que eu faço.
Você pode suspender temporariamente a transmissão dos eventos de chaves / mouse para o tmux, mantendo pressionado shift. Assim, você pode pressionar e manter pressionada a tecla Shift e atalhos regulares do usuário do terminal / X para fazer a cópia. No meu caso, usando o Terminator, pressiono shift, realce com o mouse o que quiser, copie comCtrl+Shift+C
E caso você tenha painéis divididos, é possível ampliar o painel atual com a tecla de alternância / zoom Prefix + ze executar a operação de cópia. (testado no tmux v1.8)
fonte
Isso não responde diretamente à sua pergunta, mas consulte o tmux-yank , conforme descrito em Usar a área de transferência do sistema no modo vi-copy no tmux e Obter o tmux para copiar um buffer para a área de transferência . Após a instalação,
fonte