启用set mouse=a后,在Vim内部复制的文本将不会粘贴到Vim外部。有人知道怎么解决这个问题吗?
在这里,用鼠标选择文本将打开可视模式,并禁用弹出菜单中的复制选项:
启用set mouse=a后,在Vim内部复制的文本将不会粘贴到Vim外部。有人知道怎么解决这个问题吗?
在这里,用鼠标选择文本将打开可视模式,并禁用弹出菜单中的复制选项:
当前回答
vim编译时使用的编译设置也是问题的一部分。Vim -version显示这些。
在OSX中,默认的vim有-clipboard,但你需要+clipboard
在osx上,你可以而且显然应该使用macvim。你可以做酿造桶安装macvim那个有+剪贴板。
你会有两个vims。
~$ 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,因为路径中/usr/local/bin应该在/usr/bin之前,不过您可以检查使用哪个vim。
运行vim(运行macvim)是可以的,但是你可能需要将vi映射到macvim,否则运行vi将保持默认的vim!您可以重写或删除(使用rm),并使用ln重新创建vi sym链接。要做到这一点而不出现“操作不允许”错误,您必须(暂时)禁用SIL。https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection-sip-aka-rootless-on-macos-os-x。
Macvim有+剪贴板显示由vim——版本
这是一个工作的~/。Vim /vimrc只包含所需的行。
:set mouse=a
:map <leader>c "+y
:map <leader>v "+p
默认的领导键是反斜杠。
我读到一个建议说应该使用先导键。(当然,control已经有很多键在使用中,所以建议不要使用control。我不知道这是否适用于命令键,但无论如何)。
有了上面提到的映射,\c将执行“+y”,这将从称为+的寄存器复制到剪贴板。\v将从名为+的寄存器中粘贴。
这就是窗口间的复制/粘贴。
另一个操作系统可能需要“*”而不是“+”
其他回答
在Ubuntu中,可以在VIM (Ctrl-Shift-C & Ctrl-Shift-V)中对使用Shift键高亮的文本使用X-Term复制和粘贴绑定。
他们…… 继续按Shift键,然后单击鼠标右键
如果您正在使用,Putty会话,那么它会自动复制选择。 如果我们在vim中使用了“set mouse=a”选项,使用Shift+鼠标拖动选择自动选择文本。 需要检查x项。
用鼠标选择时按shift键。这将使鼠标选择行为表现为鼠标=a未启用。
注意:这个技巧也适用于“中间按钮粘贴”:如果你想粘贴在外部选择的vim文本,点击中间按钮时按shift键。只要确保插入模式是激活的,当你这样做(你可能还想:设置粘贴,以避免意想不到的效果)。
OS X (mac): 按住alt/option同时选择(source)
在用键盘或鼠标进行可视选择后使用",+,y。无论如何,您都不应该使用终端的copy命令,因为它复制的是终端看到的内容,而不是实际的内容。下面是它的作用:
,+告诉Vim使用名为+的寄存器进行下一次删除、删除或放入操作。命名为+的寄存器是一个特殊寄存器,它是X11剪贴板寄存器。(在其他系统上,你会用*来代替,我想,看:help clipboard和:help x11-selection) y是yank命令,它告诉Vim将选择放入前面命名的寄存器中。
你可以这样映射它:
:vmap <C-C> "+y
然后用鼠标高亮显示,然后按Control-C复制。
该特性仅在使用+xterm_clipboard选项编译Vim时有效。运行vim——version查看是否存在。