2010-02-18 83 views
9

p粘贴当前行下的东西,dit删除html标签内的东西。如何在html标签内粘贴某些东西?如何在Vim中的html标签之间粘贴东西?

Nor here 
<p>I want to paste something here</p> 
    Not here 
+0

小写字母'p'在光标后放置文本,大写字母'P'在光标前放置文本。在放置文本之前移动光标了吗? http://vimdoc.sourceforge.net/htmldoc/change.html#put – 2010-02-18 08:09:57

回答

10

Pp的结果取决于您在当时所选择的寄存器中具有的值。如果您删除或抽出一个或多个完整线(例如与ddYVd命令),然后按P将插入当前行上面的线你的寄存器的内容,而p将下面的行插入光标。

如果您删除或抽出一段文字少于一行(例如与D,或yw命令),然后P将直接在当前光标位置前插入你的寄存器的内容,并p会后直接插入光标(即在同一行上)。

如果有帮助,你可以考虑面向行选择为类似于 HTML元素(如<div>),以及按字符选择为类似于直列 HTML元素(如span)。

所以要回答你的问题:这取决于。假设你在寄存器中有一行文本行,你需要在执行粘贴操作之前将目标标签分成两行。在你的例子中,而不是在做dit删除标签的内容,做cit删除相同的部分并进入插入模式。点击return一次,插入一个新行,然后esc返回到正常模式,然后P将您的linewise寄存器插入到具有结束标记的行上方。

如果你不想将标签分成多行,你需要确保你在寄存器中抽取了一个字符选择。然后,你可以运行:

"_ditP 

"_删除文成黑洞寄存器,以确保它不会覆盖什么是你默认的寄存器。 dit删除标签的内容,并且P在光标位置之前粘贴默认寄存器的内容。

0

您可以按“v”视觉,然后去光标所在,然后按pP

2

删除标记之间的当前内容与命令

cit 

即会,一旦这些内容没有了,你可以用中键点击粘贴或“在标签变”如果你需要返回到命令模式并使用正常的p/etc。

1

vitp应处理行向粘贴。

11

我通常只是做vitp它可视化地选择标签的内容,然后粘贴选择的内容。

适合我。