启用set mouse=a后,在Vim内部复制的文本将不会粘贴到Vim外部。有人知道怎么解决这个问题吗?

在这里,用鼠标选择文本将打开可视模式,并禁用弹出菜单中的复制选项:


当前回答

值得一提的是,通过设置mouse=nvi,当进行选择时,然后按:<ESC>,你将得到鼠标选择复制到主选择剪贴板(相当于一个“*y”)。

参考:帮助鼠标

该方法的主要优点是,如果您有多个垂直分割,它将只从当前缓冲区中选择。使用<Shift>,正如在主答案中提到的,在这种情况下,将同时从所有3个文件复制,这并不完全是一个人想要的,期望或需要的。

其他回答

我不小心解释了如何关闭set mouse=a,当我重读问题时,发现OP一开始就不想关闭它。无论如何,对于任何搜索如何集中关闭鼠标(set mouse=)的人,我在这里留下了我的答案的参考:https://unix.stackexchange.com/a/506723/194822

您可以在vim命令行中使用:set mouse&来启用使用鼠标选择的文本的复制/粘贴。然后您可以简单地使用鼠标中间按钮或shiftinsert粘贴它。

添加set clipboard= named到你的.vimrc。因此,它将使用剪贴板寄存器'*'而不是未命名的寄存器来进行所有的删除、删除、更改和放置操作(注意,它不仅影响鼠标)。

寄存器'*'的行为取决于您的平台以及如何编译vim(或者是否使用neovim)。

如果它不起作用,您可以尝试使用set clipboard=unnamedplus,但此选项仅在X11系统上有意义(因此gvim也是如此)。

用鼠标选择时按shift键。这将使鼠标选择行为表现为鼠标=a未启用。

注意:这个技巧也适用于“中间按钮粘贴”:如果你想粘贴在外部选择的vim文本,点击中间按钮时按shift键。只要确保插入模式是激活的,当你这样做(你可能还想:设置粘贴,以避免意想不到的效果)。

OS X (mac): 按住alt/option同时选择(source)

如果您正在使用,Putty会话,那么它会自动复制选择。 如果我们在vim中使用了“set mouse=a”选项,使用Shift+鼠标拖动选择自动选择文本。 需要检查x项。