【问题标题】:How to map yank to OS's clipboard in Vim? [duplicate]如何在 Vim 中将 yank 映射到操作系统的剪贴板? [复制]
【发布时间】:2012-07-10 02:28:18
【问题描述】:

可能重复:
vim: copy selection to OS X clipboard

虽然我成功地从剪贴板映射 paste (nmap <leader>p "*p),但 yank (nmap <leader>y "*y) 的映射似乎不起作用。实际上,它会在 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

【问题讨论】:

  • 检查:reg *:reg "。当您执行"*y 时,内容始终被放入默认寄存器通过* 寄存器与系统剪贴板同步。执行"*y 时,两个寄存器中的内容应该完全相同。
  • 使用与您完全相同的映射 (:nmap &lt;leader&gt;y "*y) 我仍然 - 从逻辑上讲 - 在 "* 中得到相同的内容。我能够在这些寄存器中拥有不同内容的唯一方法是使用y:set clipboard=。无论是否映射,"*y 始终以相同的预期方式工作。也许它与其他东西冲突,请尝试:verbose nmap &lt;leader&gt;y:verbose nmap y
  • 如果"*y 有效,但到"*y 的映射无效,那么我猜你有一些其他映射(可能在插件中?)导致问题。我认为您正在使用 :verbose nmap。也许发生了某种递归映射?在你的地图中寻找到子串的映射。也许尝试删除插件,直到问题消失或发现问题插件?你可能想看看execute "normal!"noremap...
  • @AdrienGiboire:试试这个。 :redir @a,然后是 :nmap:verbose nmap,最后是 :redir END。这些步骤基本上将 nmap 的输出重定向到a 寄存器。然后创建一个新缓冲区,粘贴到a 寄存器中,并使用/ 搜索来查找诸如"、* 和y 之类的内容,以查看它们是否在某些情况下被重新映射。

标签: clipboard vim yank


【解决方案1】:

如果您在拉动之前进行视觉选择,那么您需要vmap 而不是nmap。否则,yank 是一个普通命令,需要一个运动命令。

【讨论】:

  • 确实!现在你告诉我那是有道理的!就是这么简单!谢谢^^
猜你喜欢
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 2017-01-07
相关资源
最近更新 更多