Vim 如何解决此复制粘贴问题?

Vim 如何解决此复制粘贴问题?,vim,Vim,假设您正在浏览,看到以下代码片段: _trackEvent(category, action, opt_label, opt_value, opt_noninteraction) 双击以选择整行,复制它,然后希望将其插入Vim中的双引号中: <div onClick=""></div> 那么,不是这个, <div onClick="_trackEvent(category, action, opt_label, opt_value, opt_noninterac

假设您正在浏览,看到以下代码片段:

_trackEvent(category, action, opt_label, opt_value, opt_noninteraction)
双击以选择整行,复制它,然后希望将其插入Vim中的双引号中:

<div onClick=""></div>
那么,不是这个,

<div onClick="_trackEvent(category, action, opt_label, opt_value, opt_noninteraction)"></div>
这是我做这件事时得到的:

_trackEvent(category, action, opt_label, opt_value, opt_noninteraction)
<div onClick=""></div>

这很烦人。这是因为OSX在剪贴板中插入了结束换行符。我如何告诉Vim在使用一行时忽略结束换行符?

因为您复制了带有尾随换行符的整行,Vim使用逐行粘贴,即文本不是插入光标位置,而是插入当前位置上方/下方的单独一行。使用*from insert模式,可以避免这种情况,但它仍然会插入尾随的换行符


My有一个gcp映射,它总是以字符模式粘贴寄存器。以及其他模式和特殊粘贴的几个相关映射。使用它,您只需将光标定位在第一个/第二个位置并执行*gcp/*gcp。

执行插入操作时光标在哪里?如果vi已经处于插入模式,你插入的任何字符都不会影响光标的位置,除非粘贴本身嵌入了光标键码。你如何粘贴它?使用Ctrl+R、*,我的效果很好。我通常是这样做的,但是+p的问题几乎是一样的粘贴的行在目标行之后一行,而不是在目标行之前一行双击仅选择一个单词。需要三次单击以选择整条线,并且该选择包括换行符,因为这是定义线的内容。如果你不想要那个换行符,就不要选择它。但是你不能在Vim中复制,这就是你的问题所在。三次单击可选择换行符,但无法更改。因为复制了换行符,所以不能指望任何程序在粘贴时将其删除。你有两个解决方案:1。复制要粘贴的内容或2。使用setreg作为映射的一部分删除讨厌的换行符。我建议解决方案1。这很有帮助,谢谢。但是,将p重新映射到*gcp会中断多行代码段的粘贴。所以我想解决我的问题最简单的方法就是首先正确地复制东西。