当我从 tmux 终端(在 zsh 上)启动 MacVim 时,它的复制粘贴功能停止工作。如果我退出 tmux 然后启动 MacVim,复制粘贴功能就可以正常工作。有什么办法可以解决这个问题吗?
答案1
你可以尝试补丁在相关主题中提到(“OSX 10.6.5、Terminal.app、iTerm.app pbpaste、pbcopy 在 tmux 下不起作用”) 来自tmux 用户邮件列表(实际上托管在 sf.net,但我讨厌他们的档案界面)。
注意:这个补丁曾经应用到 MacPorts 端口,但后来已恢复什么时候怀疑这导致了其他错误。然而,这些错误实际上可能由于使用了错误版本的 libevent(而且似乎最新版本的 tmux 可以与任一版本的 libevent 兼容)。
自从helgeg 提出了这个问题,我会提到我的笔记我尝试使用上面引用的补丁。
摘要:我发现这个补丁不可靠。它允许粘贴板访问,但它触发了我安装的许多警告消息自由事件版本 2(也许版本 1 受影响较小)。它还可以防止tmux服务器无法正常运行叉(2)(通过守护进程(3)),这是对服务器进程设计工作方式的重大改变。
我最终发布了一个程序无需修补即可解决问题tmux. 使用粘贴板时遇到问题的人tmux(以及那些上述补丁不能令人满意的人)可能想尝试一下我的解决方法。
答案2
Chris Johnsen 制作了一个包装器,解决了在 OSX 上使用 pbcopy 和 pbpase 的问题。https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard(上述 MacVim 问题的根本原因)。
答案3
Chrish Johnsen 详细描述了另一种解决这个问题的简单方法,
(长话短说:由于 Tmux 的启动方式,它无法访问 OS X 的粘贴缓冲区)
是要始终记得从应用程序文件夹或非 tmux 终端会话打开 MacVim。
并使用此
http://webexpose.org/2008/10/13/open-macvim-tabs-from-command-line
关于始终在同一 MacVim 窗口的新选项卡中打开文件的教程。
该 MacVim 窗口已经可以访问粘贴缓冲区,您无需再经历其他麻烦。
但你必须记住不要在第一次加载时使用 tmux 启动 MacVim :(