Estou executando a versão mais recente do tmux (do repositório git) e do xclip (0.12) e gostaria de poder usar as ligações de teclado do tipo Emacs para mover o texto copy-mode
, as M-w
seleções de copy ( ) para a área de transferência e paste ( C-y
) de / para o buffer de cópia na área de transferência.
Até agora, consegui colar texto C-y
e me movimentar copy-mode
com as ligações de teclado do tipo Emacs, mas ainda não consigo copiar o texto de um buffer tmux (por exemplo, em copy-mode
)
Encontrei este tópico para copiar todo o buffer para a área de transferência (e vice-versa), mas não parece estar funcionando para mim.
Além disso, na tmux-users
lista de emails, disseram-me que as versões recentes do tmux (apenas no repositório git) fornecem um comando chamado copy-pipe
. A página do manual diz o seguinte sobre este comando:
Um comando aceita um argumento, copy-pipe, que copia a seleção e a envia para um comando. Por exemplo, o seguinte ligará 'C-q' para copiar a seleção em / tmp e também no buffer de colagem:
bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"
Parece que copy-pipe
deve ser usado em parte para canalizar a seleção para outro comando. Também parece haver alguns erros de digitação nesta descrição e no comando (o que é temacs-copy
?)
De qualquer forma, o que eu gostaria de fazer é:
Copiando:
- Entre no modo de cópia
- Mover-se para o texto que deseja copiar usando comandos de navegação Emacs (ou seja
C-f
,C-b
,M-f
,M-b
,C-a
,C-e
etc, para mover o cursor). Não há prefixo para nenhum deles. - Copie o texto selecionado na área de transferência com:
M-w
( sem prefixo )
Colagem:
- Eu gostaria de poder digitar
C-y
( sem precisar digitarcopy-mode
) para colar texto no terminal ( sem prefixo )
Tentei o seguinte para copiar sem sorte:
bind-key -n M-w run "tmux save-buffer - | xclip -i -selection clipboard"
No entanto, colar funciona muito bem:
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
O mais estranho é que sei que a xclip -i -selection clipboard
parte " " do comando de cópia acima funciona bem, pois posso copiar as coisas para a área de transferência na linha de comando, por exemplo:
echo "Hello world. How are you?" | xclip -i -selection clipboard
Com tudo isso, como posso copiar uma seleção do modo de cópia para a área de transferência?