le copier-coller ne fonctionne pas dans MacVim lors de son lancement dans tmux

19

Le copier-coller de MacVim cesse de fonctionner lorsque je le lance à partir d'un terminal tmux (sur zsh). Si je quitte tmux et que je lance ensuite les travaux de copie de MacVim. Une idée de comment résoudre ce problème?

Lisa
la source
Comment copiez-vous? Bien que je ne connaisse pas votre problème particulier, en général, lorsqu'un raccourci ne fonctionne pas, un autre le fera.
Yitzchak
commande C / V. les choses fonctionnent bien si je lance en dehors de tmux, donc c'est définitivement lié à tmux
Lisa

Réponses:

16

Vous pouvez essayer le correctif mentionné dans un fil associé ( «OSX 10.6.5, Terminal.app, iTerm.app pbpaste, pbcopy ne fonctionne pas sous tmux» ) de la liste de diffusion tmux-users (en fait hébergée sur sf.net, mais Je déteste leur interface d'archivage ).

Remarque: le correctif a été, à un moment donné, appliqué au port MacPorts, mais il a ensuite été annulé lorsqu'il était soupçonné de provoquer d'autres erreurs . Cependant, ces erreurs peuvent avoir été causées par une mauvaise appréciation de la mauvaise version de libevent (et il semble que les versions récentes de tmux fonctionneront avec l'une ou l'autre version de libevent ).


Depuis que helgeg l'a apporté , je mentionnerai mes notes sur ma tentative d'utiliser le patch référencé ci-dessus.

Résumé: J'ai trouvé le patch peu fiable. Il autorisait l'accès à la table de montage, mais il a déclenché de nombreux messages d'avertissement de mon installation de libevent version 2 (peut-être que la version 1 est moins affectée). Cela empêche également le serveur tmux de faire son fork normal (2) (via le démon (3) ), ce qui est un changement significatif dans la façon dont le processus serveur a été conçu pour fonctionner.

J'ai fini par publier un programme qui contourne le problème sans patcher tmux . Les personnes qui ont eu des problèmes avec le carton sous tmux (et celles pour lesquelles le correctif ci-dessus ne fonctionne pas de manière satisfaisante) pourraient essayer ma solution de contournement.

Chris Johnsen
la source
Merci beaucoup pour votre enquête sur ce problème vraiment ennuyeux et cette solution géniale, cela fonctionne comme un charme
mko
Merci beaucoup pour cela. Je peux maintenant copier du texte depuis iTerm et le coller dans mac vim démarré dans tmux. Cependant, si je ^b + [lance le mode navigation et utilise Space+ Enterpour sélectionner et copier du texte, je ne pourrai pas le coller sur mac vim. S'il vous plaît des conseils?
Phuong Nguyen
1
@PhuongNguyen: sortir copy-modecomme ça ne fait que copier dans un tampon tmux , pas le carton de Mac. Vous pouvez utiliser une commande Vim comme :r!tmux save-buffer -lire le tampon. Ou vous pouvez organiser la copie des données sur la table de montage Mac: tmux save-buffer - | reattach-to-user-namespace pbcopy(peut-être en tant que liaison tmux via run-shell) ou (dans tmux 1.8+) quitter copy-modeavec une liaison comme bind -t vi-copy y copy-pipe 'reattach-to-user-namespace pbcopy'(c'est-à-dire l'utiliser yau lieu d' Enterune fois que vous avez votre sélection).
Chris Johnsen
Merci mec. J'utilise la liaison pour l' yinstant: D
Phuong Nguyen
8

Chris Johnsen a créé un wrapper qui résout le problème de l'utilisation de pbcopy et pbpase sur OSX. https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard (la cause première du problème MacVim ci-dessus).

helgeg
la source
rapide et facile ! grand
romeovs
0

Un autre moyen hacky de contourner le problème que Chrish Johnsen a longuement décrit,

(histoire courte: Tmux perd l'accès au tampon de collage OS X en raison de la façon dont il se lance)

est de toujours penser à ouvrir MacVim à partir du dossier des applications ou d'une session de terminal non tmux.

et utilisez ceci

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

tutoriel sur toujours avoir des fichiers ouverts dans un nouvel onglet dans la même fenêtre MacVim.

Cette fenêtre MacVim aura déjà accès au tampon de collage et vous n'aurez pas à passer par les autres cerceaux.

Mais vous devrez vous rappeler de ne pas lancer MacVim avec tmux au premier chargement :(

Volonté
la source