使用set mouse = a复制Vim外部的文本

问题描述 投票:201回答:12

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

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

vim configuration mouse copy-paste
12个回答
387
投票

使用鼠标选择时按下shift。这将使鼠标选择的行为就像没有启用mouse=a一样。

注意:此技巧也适用于“中间按钮粘贴”:如果要粘贴在外部选择的文本文本,请在单击中间按钮时按shift。只需确保在执行此操作时激活插入模式(您可能还需要:set paste以避免意外影响)。

OS X(mac):选择时保持alt /选项(source


0
投票

我意外地解释了如何关闭set mouse=a,当我重读问题并发现OP不想首先关闭它。无论如何,对于任何寻找如何集中关闭鼠标(set mouse=)的人,我在这里留下我的答案:https://unix.stackexchange.com/a/506723/194822


0
投票

编译vim的编译设置是问题的一部分。 vim --version展示了这些。

在OSX中,默认的vim有-clipboard但你需要+clipboard

在osx上你可以并且显然通常应该使用macvim。你可以做brew cask install macvim那个有+clipboard

他们你有两个病毒。

~$ ls -l /usr/bin/vim   <--- default vim
-rwxr-xr-x  1 root  wheel  1745984 15 Jul  2017 /usr/bin/vim

~$ ls -l /usr/local/bin/vim   <-- macvim, installed recently via that mentioned brew line. 
lrwxr-xr-x  1 apple  admin  42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$ 

运行vim将运行macvim'cos /usr/local/bin应该在路径中的/usr/bin之前,尽管你可以检查which vim

运行vim(运行macvim),很好,但你可能想要将vi映射到macvim'cos,否则运行vi保持默认的vim!您可以使用ln重写或删除(使用rm)并重新创建vi sym链接。如果没有“不允许操作”错误,你必须(暂时)禁用SIL.https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection-sip-aka-rootless-on-macos-os-x

macvim有+clipboard所示的vim --version

这是一个工作~/.vim/vimrc只有所需的线。

:set mouse=a
:map <leader>c "+y
:map <leader>v "+p

默认的leader键是反斜杠。

我读了一个建议,一个人应该使用领导键..(当然控制已经使用了许多键,所以建议不使用控制。我不知道这是否也适用于命令键,但无论如何)。

通过上面提到的映射,\c将执行"+y,它将从名为+的寄存器复制到剪贴板。而\v将从名为+的寄存器中粘贴。

这是在Windows之间工作的复制/粘贴。

另一个操作系统可能需要"*而不是"+


-2
投票

在ESC模式下,当设置鼠标= a时,使用鼠标选择文本。这将启用vim中的可视模式。然后你可以按'y'来拉动所选文本,然后按'p'将它粘贴到你想要的任何地方。这只发生在vim中。


45
投票

使用“+ y。您不应该使用终端复制命令,因为它复制终端看到的内容而不是实际内容。

你可以像这样映射它:

:vmap <C-C> "+y

然后用鼠标突出显示某些内容并按Control-C进行复制。

此功能仅在使用+xterm_clipboard选项编译Vim时有效。运行vim --version以确定它是否有。


17
投票

而不是set mouse=a在.vimrc中使用set mouse=r


13
投票

在OSX上使用fn而不是shift。


6
投票

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


5
投票

另一个OSX-Mac选项是取消选中View->Allow Mouse Reporting(或按⌘-R切换它。)这允许您在鼠标交互和鼠标选择之间切换,这在选择和复制/粘贴几个位时可能很有用,因为您没有必须持有一个修饰键才能做到这一点。

Note for Multiline with line numbers:

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


1
投票

您可以在vim命令行中使用:set mouse&来启用使用鼠标选择的文本的复制/粘贴。然后,您只需使用鼠标中键或shiftinsert粘贴即可。


0
投票

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


0
投票

em ...按住Shift然后单击鼠标右键

© www.soinside.com 2019 - 2024. All rights reserved.