我希望能够在本机(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”粘贴