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

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


当前回答

在.vimrc中使用set mouse=r代替set mouse=a

其他回答

另一个OSX-Mac选项是取消勾选View->允许鼠标报告(或按⌘- r切换它)。这允许你在鼠标交互和鼠标选择之间切换,这在选择和复制/粘贴一些位时可能很有用,因为你不需要按住修改键来做这件事。

有行号的多行注意事项:

我通常启用行号,所以如果你选择多行,这也会复制行号。如果你想复制多条没有行号的行,使用:set nonu禁用这些行号,然后你可以:set nu在复制完成后重新启用它们。

在OSX上使用fn而不是shift。

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

在ESC模式下,当set mouse=a时,使用鼠标选择文本。这将启用vim中的可视模式。然后你可以按“y”键拉出选中的文本,按“p”键粘贴到任何你想要的地方。这只在vim中发生。

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

参考:帮助鼠标

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