如何从 vim 中选择所有副本并将其粘贴到其他程序(例如邮件客户端)?

如何从 vim 中选择所有副本并将其粘贴到其他程序(例如邮件客户端)?

我该如何执行以下操作?

从 vim 复制所有文本并将其粘贴到外部程序,例如邮件 Outlook?我尝试过+ygg*yG但粘贴不起作用。

答案1

这需要 vim 具有 X11 剪贴板集成。您可以通过执行vim --version和查找来检查这一点+xterm_clipboard+clipboard不是吗,那是为了使用 GUI,这实际上可能就是您所追求的,问题没有指定 GUI 或终端)。

如果您没有+xterm_clipboard,则需要获取具有该功能的 vim 版本(或自行重新编译)。

如果你拥有它,那就太棒了。让我们继续吧。

X11有2个“剪贴板”。有选择缓冲区,然后是真正的剪贴板。选择缓冲区是突出显示/中键单击的东西。剪贴板是普通的CTRL+C/CTRL+V。
要将当前行复制到选择缓冲区中,请执行"*yy。 (是的,那就是 shift+quote shift+8 yy)
要复制到剪贴板,请执行"+yy.
(您可以在视觉模式下使用其他选择说明符,例如"+yG、 或)"+y

如果您想将其中之一设置为默认值,那么您可以直接执行yy,无需"+/"*位,您可以将以下内容之一添加到您的~/.vimrc

set clipboard=unnamed

或者

set clipboard=unnamedplus

您没有指定是否远程访问计算机,但如果是,您仍然可以执行此操作,但您需要打开 X11 转发并在 SSH 中工作。不过我会警告你,它可能会导致 vim 需要几秒钟才能启动。

相关内容