在Vim中复制没有换行符和制表符的区域

时间:2014-07-05 22:28:40

标签: vim

是否可以复制所选区域但Vim中没有换行符和标签?

如果我复制此代码

SELECT
    id,
    title
FROM items
WHERE id = 3

然后粘贴它,结果应为SELECT id, title FROM items WHERE id = 3

3 个答案:

答案 0 :(得分:4)

v isual选择 i nner p aragraph,然后选择 J

vipJ

*假设这是一个段落,光标位于其中一行

要复制到默认寄存器,请将“Vduu”追加到末尾,总计

vipJVduu

这会选择该行并将其删除并撤消,以便我们回到我们开始的地方。您现在可以将“p”粘贴到您想要的地方!

但是为什么不在你的.vimrc中添加它作为映射并使用以下内容将其添加到系统剪贴板

nmap _j vipJV"+yu

以下gif显示了正在使用的映射

_j 

然后打开一个新行并在mac上用cmd-v粘贴

enter image description here

答案 1 :(得分:0)

移至第一行,然后

y5yP5J

表示:复制5行(y5y),然后将其粘贴到上方(P),然后加入以下5行(5J)。当然你可以将它们粘贴到任何地方,只需将光标移动到那里。我把它们粘贴在上面就好了。

或者,您可以

VjjjjJyyu

选择查询(Vjjjj),连接线(J),复制连接线(yy),然后取消连接(u)。这可能是更一般的方法,因为您不需要像以前那样重复两次行数(5)。

答案 2 :(得分:0)

您可以使用我的UnconditionalPaste plugin;无论寄存器类型如何,它都提供gcp映射以粘贴字符。 (对于其他类型的几个类似的映射,以及在行之间粘贴常见或查询的字符等)。