在Vim中有没有将文本放入寄存器的方法?

可能重复:
有什么方法可以在vim中删除而不会覆盖最后一次放弃?

使用Vim我经常想用我刚刚抽出的块替换一段代码。

但是,当我删除要替换的代码块时,该块本身会进入删除刚刚被抽出的块的寄存器。 所以我养成了习惯,然后插入,然后删除我不想要的东西,但是对于大块代码来说,这会让试图保持插入块和块单独删除变得混乱。

那么,在Vim中取代文本的最爽快和最快捷的方式是什么?

  • 有没有办法删除文本而不把它放入注册表中?
  • 有没有办法说例如“替换下一个单词”或“替换到下一个段落”
  • 或者是以某种方式使用多寄存器功能的最佳方式?

  • 要删除某些内容而不将其保存在寄存器中,可以使用“黑洞寄存器”:

    "_d
    

    当然,你也可以使用任何其他不含任何你感兴趣的寄存器。


    是的。 它比首先删除“旧”文本略微更复杂,但是:

    我以...开始

    line1
    line2
    line3
    line4
    
    old1
    old2
    old3
    old4
    

    我移动+ v选择行1,行2,3和4,并用d命令删除它们

    然后我以同样的方式删除旧的1-4行。

    然后做

    "2p
    

    这将粘贴第二个被抽出的线(第1-4行)。 "3p将做倒数第三,等等。

    所以我最终结束了

    line1
    line2
    line3
    line4
    

    参考:有关编号寄存器的Vim文档


    VIM文档:编号寄存器0包含来自最近yank命令的文本,除非该命令用[“x]指定另一个寄存器。

    例如,我们猛击“foo”并删除“bar” - 注册表0仍包含“foo”! 因此可以使用"0p ”来粘贴“foo”

    链接地址: http://www.djcxy.com/p/19129.html

    上一篇: In Vim is there a way to delete without putting text in the register?

    下一篇: NHibernate HiLO: different needs in different application scopes