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

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


当前回答

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

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

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

其他回答

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

在Ubuntu中,可以在VIM (Ctrl-Shift-C & Ctrl-Shift-V)中对使用Shift键高亮的文本使用X-Term复制和粘贴绑定。

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

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

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

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

参考:帮助鼠标

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

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