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

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


当前回答

在OSX上使用fn而不是shift。

其他回答

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

set set mouse=a在vi中,使用MobaXterm,在服务器上安装vm -gtk3后,用鼠标拖动和Ctrl + Insert工作,但似乎只适用于MobaXterm

安装vim-gtk3后,vi会链接到它

lala@kubu:~$ sudo apt install gvim
[sudo] password for lala:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package gvim is a virtual package provided by:
  vim-gtk3 2:8.2.2434-3ubuntu3.2
  vim-athena 2:8.2.2434-3ubuntu3.2
You should explicitly select one to install.

E: Package 'gvim' has no installation candidate
lala@kubu:~$ which vi
/usr/bin/vi
lala@kubu:~$ file /usr/bin/vi
/usr/bin/vi: symbolic link to /etc/alternatives/vi
lala@kubu:~$ file /etc/alternatives/vi
/etc/alternatives/vi: symbolic link to /usr/bin/vim.gtk3
lala@kubu:~$

在用键盘或鼠标进行可视选择后使用",+,y。无论如何,您都不应该使用终端的copy命令,因为它复制的是终端看到的内容,而不是实际的内容。下面是它的作用:

,+告诉Vim使用名为+的寄存器进行下一次删除、删除或放入操作。命名为+的寄存器是一个特殊寄存器,它是X11剪贴板寄存器。(在其他系统上,你会用*来代替,我想,看:help clipboard和:help x11-selection) y是yank命令,它告诉Vim将选择放入前面命名的寄存器中。

你可以这样映射它:

:vmap <C-C> "+y

然后用鼠标高亮显示,然后按Control-C复制。

该特性仅在使用+xterm_clipboard选项编译Vim时有效。运行vim——version查看是否存在。

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

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

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

按住shift键复制粘贴选区对我很有用