与内部 X 服务器共享 Mac OS X 剪贴板

与内部 X 服务器共享 Mac OS X 剪贴板

我希望能够在本机(Cocoa?)MacOS X 应用程序和在 Mac 内部 X 服务器下运行的应用程序之间进行复制和粘贴。

目前我可以独立地复制和粘贴。如果我在 xterm 窗口中选择文本,我可以将其粘贴回任何其他基于 X 的窗口。同样,复制 X 之外的信息可以粘贴到同样在 X 之外的应用程序中。

举个例子,如果我(按照这个顺序):

  • 复制(使用鼠标选择)在 xterm 窗口中“使用 X 选择复制”
  • 在 Firefox 中复制(编辑 | 复制)“Firefox 中的文本”
  • 粘贴(Shift 插入 xmodmap)到 nano 中我得到“使用 X 选择复制”
  • 粘贴(编辑 | 粘贴)在此处我得到 -> Firefox 中的文本
  • 粘贴到 MacVIM 中(编辑 | 粘贴)我得到“Firefox 中的文本”
  • 粘贴到 /usr/bin/vim (非图形)我得到“使用 X 选择复制”

如何在 X 和 Cocoa 之间启用“剪贴板共享”?

我用来粘贴到 X 中的 xmodmap 是:

xmodmap -e "keycode 84 = Insert"

其中 84 是数字键盘的 Enter 键。因此 Shift Enter 会执行粘贴操作。

答案1

~/Library/Preferences/org.x.X11.plist您可以通过编辑和添加以下五个布尔键来启用剪贴板同步1(并检查它们)。

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

重新启动 X11,它们应该正确同步。

编辑:您可以使用属性列表编辑器或以下终端命令添加键:

defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_primary -boolean true
defaults write org.x.X11 sync_primary_on_select -boolean true

另一种解决方案是安装最新版本的 XQuartz通过 X11 首选项 >> 剪贴板面板显示这些选项。

答案2

您也可以重新编译 vim-7.3 并将以下内容添加到您的 .vimrc 中:

set clipboard=unnamed

然后,您将能够在 vim 中执行“yy”,并使用 Cmd+V 在 Cocoa 中粘贴。反之亦然:在 Cocoa 中使用 Cmd+V 复制,并在 vim 中使用“p”粘贴

相关内容