可能重复:
vim:将选择内容复制到OS X剪贴板
我已经成功地将来自剪贴板的粘贴
映射了(nmap <leader>p "*p
),但是同样的映射yank
(nmap <leader>y "*y
)似乎没有起作用。实际上,它将yank到了Vim的剪贴板中。
有什么好的方法可以解决这个问题吗?我知道有clipboard=unnamed
但我可能会保留旧的yank/paste vim命令。
编辑:我的需求似乎有些引起混淆。
命令"*y
可行。所以我的Vim环境中的+clipboard
没什么问题。不好用的是映射部分。
我想添加一些东西,比如:
nmap <leader>y "*y # Doesn't work as expected. It copies only in Vim's clipboard, ie I have to type `p` to paste the copied content instead of `"*p`.
nmap <leader>p "*p # Works as expected.
我更清楚了吗?第二次编辑:以防万一,因为我不知道什么能帮助你帮助我,这是我的机器上“vim--version”的渲染: https://gist.github.com/3090385
% vim --version | grep clipboard -clientserver **+clipboard** +cmdline_compl +cmdline_hist +cmdline_info +comments
@perreal, @GWW: 重点不是如何使用操作系统的剪贴板进行复制/粘贴。这已经可以工作了。问题在于如何映射这些命令。只是映射有误,但我不知道为什么... - Adrien:reg *
和:reg "
。当你执行"*y
时,内容总是放入默认寄存器并通过*
寄存器与系统剪贴板同步。当你执行"*y
时,两个寄存器中应该有完全相同的内容。 - romainl:nmap <leader>y "*y
),我仍然逻辑上在“”和“*”中得到相同的内容。我能够在这些寄存器中拥有不同的内容的唯一方法是使用:set clipboard=
进行复制。无论是否映射,"*y
总是按预期方式工作。也许它与其他某些东西冲突了,请尝试:verbose nmap <leader>y
和:verbose nmap y
。 - romainl"*y
可以工作,但映射到"*y
的操作无法正常工作,那么我猜测您可能有其他映射(也许是插件?)导致问题。我认为您正在使用:verbose nmap
进行跟踪。也许存在某种递归映射?请查找映射到您映射中子字符串的映射。或者尝试删除插件,直到问题消失或确定问题插件?您可能需要查看execute "normal!"
或noremap
... - darcyparker:redir @a
,然后输入:nmap
或者:verbose nmap
,最后输入:redir END
。这些步骤基本上是将 nmap 的输出重定向到寄存器a
中。然后创建一个新的缓冲区,在其中粘贴寄存器a
中的内容,并使用/
搜索来查找像 ", * 和 y 这样的内容,以查看它们是否在某些情况下被重新映射了。 - darcyparker