在tmux中启动时,复制粘贴在MacVim中不起作用


19

当我从tmux终端(在zsh上)启动MacVim的复制粘贴时,它停止工作。如果我退出tmux,然后启动MacVim,则复制粘贴工作正常。任何想法如何解决这个问题?


您如何复制?虽然我不熟悉您的特定问题,但总的来说,其中一种快捷方式不起作用,而另一种快捷方式则无效。
Yitzchak

命令C / V。如果我在tmux之外启动,那么一切正常,所以它肯定与tmux有关
Lisa

Answers:


16

您可以尝试从tmux-users邮件列表(实际上托管在sf.net上)的相关线程(“ OSX 10.6.5,Terminal.app,iTerm.app pbpaste,pbcopy在tmux下不起作用”)中提及该补丁。我讨厌他们的存档界面)。

注意:该修补程序曾经一次应用于 MacPorts端口,但后来被怀疑是引起其他错误时又还原。但是,这些错误实际上可能是由对错误版本的libevent的偏爱引起的(似乎tmux的最新版本可与任何版本的libevent一起使用)。


自从helgeg提出以来,我将在尝试使用上面提到的补丁程序时提及我的笔记

摘要:我发现该补丁不可靠。它允许粘贴板访问,但是从我安装的libevent版本2中触发了许多警告消息(也许版本1受的影响较小)。它还会阻止tmux服务器执行其正常的fork(2)(通过daemon(3)进行),这对服务器进程的工作方式进行了重大更改。

我最终发布了一个无需打补丁tmux即可解决该问题的程序。那些在tmux下使用粘贴板时遇到问题的人(以及上述补丁无法令人满意地工作的人)可能想尝试一下我的解决方法。


非常感谢您对这个令人烦恼的问题和出色的解决方案进行的调查,它的工作原理很迷人
mko 2012年

非常感谢。我现在可以从iTerm复制文本并粘贴到从tmux开始的mac vim中。但是,如果我^b + [启动浏览模式并使用Space+ Enter选择和复制文本,则无法将其粘贴到mac vim。请指教?
Phuong Nguyen 2014年

1
@PhuongNguyen:这样退出copy-mode仅复制到tmux缓冲区,而不是Mac粘贴板。您可以使用Vim命令:r!tmux save-buffer -来读取缓冲区。或者,您也可以安排将数据复制到Mac粘贴板上:(tmux save-buffer - | reattach-to-user-namespace pbcopy也许作为tmux绑定,通过run-shell)或(在tmux 1.8+中)copy-mode以类似的绑定退出bind -t vi-copy y copy-pipe 'reattach-to-user-namespace pbcopy'(即,使用此绑定y而不是Enter选择一次)。
克里斯·约翰森

谢啦。我现在使用的是绑定y:D
Phuong Nguyen 2014年


0

Chrish Johnsen详细描述的另一种解决问题的方法,

(长话短说:由于Tmux自身启动的方式,因此无法访问OS X粘贴缓冲区)

始终要记住从应用程序文件夹或非tmux终端会话中打开MacVim。

并使用这个

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

关于始终在同一MacVim窗口的新选项卡中打开文件的教程。

该MacVim窗口将已经可以访问粘贴缓冲区,而您不必经历其他麻烦。

但是您必须记住不要在第一次加载时用tmux启动MacVim :(

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.