
Estou usando um arquivo .tmux.conf personalizado parecido com este:
unbind-key C-b
set -g prefix C-a
bind-key C-a send-prefix
set-window-option -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
## CLIPBOARD selection integration
# Requires prefix key before the command key
# Copy tmux paste buffer to CLIPBOARD
bind C-y run "tmux show-buffer | xclip -i -selection clipboard"
# Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer
bind C-p run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
Estou usando ctrl+ a ctrl+ ypara copiar do buffer de cópia do tmux para a área de transferência. Mas toda vez que faço isso, o tmux congela e não aceita nenhuma entrada. Tentei usar ctrl+ qmas isso não ajuda.
O que posso fazer para evitar o congelamento do tmux, quais atalhos estão interferindo aqui? Também tentei o atalho ctrl+ a ctrl+ c, mesmo problema aqui.
Responder1
Se você digitar o xclip
comando na linha de comando, notará que ele não termina. Isso ocorre porque ele continua a aceitar entradas atéSTDINé feito. Por isso,STDOUTnunca fica fechado. Você pode resolver isso redirecionando oSTDOUTde xclip
para /dev/null
. Por exemplo:
bind y run "tmux save-buffer - | xclip -selection clipboard &>/dev/null"
Neste exemplo eu redirecionoSTDERRtambém, caso isso importe.
Responder2
xclip
está aguardando entrada, o que impede que o tmux receba entrada. O exemplo a seguir permite que o xclip seja executado em outro shell sem bloquear sua sessão tmux:
bind y run-shell -b "tmux save-buffer - | xclip -selection clipboard"
Eu até adicionaria uma mensagem para ajudar no seu fluxo de trabalho:
bind y run-shell -b "tmux save-buffer - | xclip -selection clipboard; tmux display-message \"Tmux buffer saved to clipboard\" "
Eu espero que isso ajude!
Responder3
bind y run-shell -b "cat << EOF | tmux save-buffer - | xclip -sel clipboard &>/dev/null"
você pode fazer isso desta forma, o EOF fecha o buffer após copiá-lo para a área de transferência com o xclip.