copy (para o X clipboard) atalho no .tmux.conf

22

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"
    
por none 19.09.2012 / 20:07

2 respostas

11

Esta resposta não responde diretamente à sua pergunta sobre como criar um atalho. Mas aqui está o que eu faço.

Você pode temporariamente suspender a passagem de seus eventos de chaves / mouse para o tmux mantendo shift . Então você pode pressionar e segurar Shift e atalhos regulares do usuário do terminal / X para fazer a cópia. No meu caso usando Terminator, eu pressiono shift , realce com o mouse o que eu quiser, copie com Ctrl + Shift + C

E, caso você tenha painéis divididos, você pode ampliar o painel atual com a tecla de zoom Prefixo + z e executar a operação de cópia. (testado no tmux v1.8)

    
por 02.02.2014 / 14:58
1

Isso não responde diretamente à sua pergunta, mas dê uma olhada em tmux-yank , conforme descrito em Use a área de transferência do sistema no modo vi-copy no tmux e Obtendo o tmux para copiar um buffer para a área de transferência . Depois de instalar,

prefix + y - copies text from the command line to clipboard.

copy mode bindings:

y - copy selection to system clipboard

    
por 19.04.2016 / 16:20