启用set mouse=a
后,复制到Vim内部的文本将不会粘贴到Vim之外。有人知道解决这个问题的方法吗?
在这里,使用鼠标选择文本会打开可视模式并禁用弹出菜单中的Copy
选项:
使用鼠标选择时按下shift。这将使鼠标选择的行为就像没有启用mouse=a
一样。
注意:此技巧也适用于“中间按钮粘贴”:如果要粘贴在外部选择的文本文本,请在单击中间按钮时按shift。只需确保在执行此操作时激活插入模式(您可能还需要:set paste
以避免意外影响)。
OS X(mac):选择时保持alt /选项(source)
我意外地解释了如何关闭set mouse=a
,当我重读问题并发现OP不想首先关闭它。无论如何,对于任何寻找如何集中关闭鼠标(set mouse=
)的人,我在这里留下我的答案:https://unix.stackexchange.com/a/506723/194822
编译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之间工作的复制/粘贴。
另一个操作系统可能需要"*
而不是"+
在ESC模式下,当设置鼠标= a时,使用鼠标选择文本。这将启用vim中的可视模式。然后你可以按'y'来拉动所选文本,然后按'p'将它粘贴到你想要的任何地方。这只发生在vim中。
使用“+ y。您不应该使用终端复制命令,因为它复制终端看到的内容而不是实际内容。
你可以像这样映射它:
:vmap <C-C> "+y
然后用鼠标突出显示某些内容并按Control-C进行复制。
此功能仅在使用+xterm_clipboard
选项编译Vim时有效。运行vim --version
以确定它是否有。
而不是set mouse=a
在.vimrc中使用set mouse=r
在OSX上使用fn而不是shift。
在Ubuntu中,可以在使用Shift键高亮显示的文本上使用VIM内部的X-Term复制和粘贴绑定(Ctrl-Shift-C和Ctrl-Shift-V)。
另一个OSX-Mac选项是取消选中View->Allow Mouse Reporting
(或按⌘-R切换它。)这允许您在鼠标交互和鼠标选择之间切换,这在选择和复制/粘贴几个位时可能很有用,因为您没有必须持有一个修饰键才能做到这一点。
我通常启用行号,因此如果选择多行,这也会复制行号。如果你想复制没有行号的多行,用:set nonu
禁用数字,然后你可以:set nu
在你完成复制后重新启用它们。
您可以在vim命令行中使用:set mouse&
来启用使用鼠标选择的文本的复制/粘贴。然后,您只需使用鼠标中键或shiftinsert粘贴即可。
如果您正在使用Putty会话,那么它会自动复制选择。如果我们在vim中使用了“set mouse = a”选项,则使用Shift +鼠标选择拖动会自动选择文本。需要签入X-term。
em ...按住Shift然后单击鼠标右键