Como aumentar o tamanho do buffer de cópia no tmux?

7

Pergunta : Como aumentar o tamanho do buffer de cópia no tmux?

Dados : quando executo o seguinte comando ...

$ for i in {1..1000}; do echo "$i"; done  

... e realce a saída inteira no tmux (usando os comandos do mouse ou do teclado), aqui está o que é enviado para a área de trabalho do sistema:

1  
2  
3  
4  
--snip--
205  
206  
207  
208  
20   (<--- Notice where it cuts off)

Triagem :
- Isso persiste quando eu saio do tmux e mato o servidor, movo o tmux.conf e inicio uma nova instância do tmux com o arquivo conf padrão. (Ter que reaprender as chaves padrão era difícil X_X).
- Também persiste em uma máquina diferente (novamente, com configurações padrão do tmux) com o software exato (listado abaixo). - Também persiste no padrão Terminal.app (novamente, com as configurações padrão do tmux)

System :
    OS X 10.9.2
    tmux 1.9a (homebrew) + reconecta-para-usuário-namespace (homebrew)
    iTerm Build 1.0.0.20140421

    
por Josh Whittington 29.04.2014 / 00:26

3 respostas

1

Depois de ler este artigo , aprendi sobre o novo copy-pipe comando que foi adicionado ao tmux 1.8 :

copy-pipe mode command to copy selection and pipe the selection to a command.

Alterar as ligações do modo de cópia para usar o novo comando copy-pipe corrigiu o problema para mim:

# (from my tmux.conf)...
# Change copy / paste bindings to work like Vim
# Note this used to use 'copy-selection' but that has been replaced
# with 'copy-pipe' as of Tmux 1.8. See: https://goo.gl/ea3CRO
bind Escape copy-mode
bind p paste-buffer
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

# Update default binding of 'Enter' to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
    
por 13.08.2015 / 12:14
0

Problema resolvido. Alguns ponteiros.

  1. reattach-to-user-namespace não é obrigatório. Apenas pbcopy .
  2. Testado com tmux 2.3
  3. O truque é fazer com que o evento MouseDragEnd1Pane dispare pbcopy .
  4. Use iTerm2 , o que significa que o Suporte ao mouse apenas funciona. De tmux v2.1 only set-option -g mouse on é necessário.
  5. Você não precisa do modo de cópia do vi. Apenas certifique-se de que MouseDragEnd1Pane esteja vinculado abaixo

Aqui está meu ~/.tmux.conf

# --------------------------------
# Turn on the Mouse Support - defaults seem good
# --------------------------------
set-option -g mouse on
# when we finish "selecting" send it to pbcopy (and into the OS X buffer)
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "pbcopy"

# --------------------------------
# Use vim keybindings in copy mode
# --------------------------------
setw -g mode-keys vi

# Setup 'v' to begin selection as in Vim
# You enter with C-b [ and then "v" - then normal keypresses to "highlight"
# .. [Enter] or "y" will select (because of below bindings)
bind-key -t vi-copy v begin-selection
#
# 'y'ank will send the selection to the OS X buffer
bind-key -t vi-copy y            copy-pipe "pbcopy"

# --------------------------------
# Update default binding of 'Enter' to also use Send the selection to OS X buffer
# --------------------------------
unbind   -t vi-copy Enter
bind-key -t vi-copy Enter        copy-pipe "pbcopy"

# selecting can now be done with
#  hilighting with a mouse
#  selecting with C-b [ v .. now vi mode for selecting text
#
# pasting  can now be done with
# ⌘ - V
# C-b ]
    
por 13.09.2017 / 16:01
-1

Isso parece ter funcionado para mim:

link

I had the same problem using tmux 1.8, iTerm2, and reattach-to-user-namespace. I ran across a tmux config binding that fixes the problem: it explicitly copies the last buffer selection to the clipboard:

bind-key q run "tmux save-buffer - | reattach-to-user-namespace pbcopy"

Put it in your ~/.tmux.conf, and then C-b q will pull everything into your clipboard after a selection.

    
por 01.07.2015 / 10:37

Tags