copiar e colar não funciona no MacVim quando lançado no tmux


19

O copiar e colar do MacVim para de funcionar quando eu inicio a partir de um terminal tmux (no zsh). Se eu sair do tmux e iniciar o MacVim copy-past works. Alguma idéia de como consertar isso?


Como você está copiando? Embora eu não esteja familiarizado com o seu problema específico, em geral, onde um atalho não funciona, outro funcionará.
Yitzchak

comando C / V. as coisas funcionam bem, se eu lançar fora do tmux por isso é definitivamente relacionadas com tmux
Lisa

Respostas:


16

Você pode tentar o patch mencionado em um encadeamento relacionado ( “OSX 10.6.5, Terminal.app, iTerm.app pbpaste, pbcopy não funciona no tmux” ) na lista de discussão tmux-users (realmente hospedada em sf.net, mas Eu abomino sua interface de arquivamento ).

Nota: o patch foi aplicado uma vez na porta MacPorts, mas posteriormente foi revertido quando se suspeitava estar causando outros erros . No entanto, esses erros podem ter sido causados ​​por gostar da versão errada do libevent (e parece que as versões recentes do tmux funcionarão com qualquer uma das versões do libevent ).


Desde que o helgeg o trouxe , mencionarei minhas anotações sobre minha tentativa de usar o patch mencionado acima.

Resumo: achei o patch não confiável. Ele permitiu o acesso à área de transferência, mas disparou muitas mensagens de aviso da minha instalação da libevent versão 2 (talvez a versão 1 seja menos afetada). Isso também impede que o servidor tmux execute seu fork normal (2) (via daemon (3) ), que é uma mudança significativa na forma como o processo do servidor foi projetado para funcionar.

Acabei publicando um programa que resolve o problema sem corrigir o tmux . As pessoas que tiveram problemas ao usar a área de transferência no tmux (e aquelas para as quais o patch acima não funciona satisfatoriamente) podem querer tentar minha solução alternativa.


Muito obrigado pela sua investigação sobre este problema realmente irritante e solução brilhante, ele funciona como um encanto
MKO

Muito obrigado por isso. Eu posso copiar o texto do iTerm e colar no mac vim iniciado no tmux agora. No entanto, se eu ^b + [iniciar o modo de navegação e usar Space+ Enterpara selecionar e copiar texto, não poderei colá-lo no mac vim. Conselho por favor?
Phuong Nguyen

1
@PhuongNguyen: sair copy-modeassim apenas copia para um buffer tmux , não para a área de trabalho do Mac. Você pode usar um comando do Vim:r!tmux save-buffer - para ler o buffer. Ou você pode copiar os dados para a área de trabalho do Mac: tmux save-buffer - | reattach-to-user-namespace pbcopy(talvez como uma ligação do tmux via run-shell) ou (no tmux 1.8+) saia copy-modecom uma ligação do tipo bind -t vi-copy y copy-pipe 'reattach-to-user-namespace pbcopy'(ou seja, use-a yem Entervez de fazer a seleção).
Chris Johnsen

Obrigado cara. Eu estou usando a ligação de yagora: D
Phuong Nguyen


0

Outra maneira hacky de contornar o problema que Chrish Johnsen descreveu longamente,

(Resumindo: o Tmux perde o acesso ao buffer de colagem do OS X devido à maneira como ele se lança)

é sempre lembrar de abrir o MacVim a partir da pasta de aplicativos ou de uma sessão de terminal não tmux.

e use isso

http://webexpose.org/2008/10/13/open-macvim-tabs-from-command-line

tutorial sobre sempre ter os arquivos abertos em uma nova guia na mesma janela do MacVim.

Essa janela do MacVim já terá acesso ao buffer de colagem e você não precisará passar pelos outros aros.

Mas você deve se lembrar de não iniciar o MacVim com tmux no primeiro carregamento :(

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.