在vim上有cit,dit,yit(更改,删除,标记内部标记)...是否有类似坑(粘贴在标签内?)

时间:2011-07-20 21:44:27

标签: vim

使用vim我在编辑html / xml文件时习惯了citdityit等动作命令。使用此命令后我更喜欢.,因为我只需要一次按键即可重复我的操作。

我想知道是否已经可以使用坑(粘贴在标签内),删除标签内部并粘贴我想要的内容(例如来自+注册)并使.可用{{1}或者,如果我需要为它创建一个映射。

2 个答案:

答案 0 :(得分:23)

不,但您可以直观地选择并放置文字:

vitp

答案 1 :(得分:0)

Ingo Karat出色的vim-ReplaceWithRegister最有可能是您想要的。

它定义了gr对象,以便为任何动作粘贴vim方式:

USAGE
------------------------------------------------------------------------------

    [count]["x]gr{motion}   Replace {motion} text with the contents of register x.
                            Especially when using the unnamed register, this is
                            quicker than "_d{motion}P or "_c{motion}<C-R>"
    [count]["x]grr          Replace [count] lines with the contents of register x.
                            To replace from the cursor position to the end of the
                            line use ["x]gr$
    {Visual}["x]gr          Replace the selection with the contents of register x.

例如,假设您必须在缓冲区的第一行放置带有光标的标签:

<mytag> aaa </mytag>
<mytag> bbb </mytag>
<mytag> ccc </mytag>

yit照常将aaa拖入未命名的寄存器""中。 但是,如果您转到下一行(j),现在就可以用vim方式替换为grit(粘贴标签),而不会覆盖""。 因此,如果您在第三行重复grit,则还将ccc替换为aaa。当然,只需按.以重复上一次操作,就可以使操作更快。

它也可以很好地与global命令配合使用,即在拉动之后,您只需:%g/mytag/norm grit即可将其替换为包含mytag的所有行。