【问题标题】:VIM: Delete+Paste in one "command"?VIM:在一个“命令”中删除+粘贴?
【发布时间】:2009-12-10 23:30:07
【问题描述】:

我在需要大量yy、dd 和ping 的多个文件之间进行大量文本操作。这听起来可能很疯狂,但有没有更短的方法可以一次性完成dd 和p?甚至可以使用插件?

【问题讨论】:

    标签: vim keyboard-shortcuts


    【解决方案1】:

    你可以只做一张地图:

    :map J ddp
    

    然后 J (或任何你想要的)将执行组合操作。

    顺便说一句,我总是将 D 映射到 dd,因为我删除整行的次数比删除到行尾的次数要多得多。这使得使用 Dp 来完成您的任务变得容易。

    【讨论】:

    • 我删除了我的答案,因为彼得的答案要好得多。 +1!
    • 不错的提示。你是如何标记按键的?我在帮助中没有看到“key”或“kbd”...或者我可以只做 吗? 我可能刚刚回答了我自己的问题! :)
    • 嘿嘿。是的,你使用 标签。
    • 小心映射到“J”键,因为默认情况下将线条连接在一起(我个人觉得这非常有用)
    • 很好,是时候将它包装在 .vimrc 中了 :)
    【解决方案2】:

    我通常只使用:

    Shift+v(选择整行)

    然后

    p(使用当前寄存器粘贴到所选行上)

    【讨论】:

      【解决方案3】:

      我刚刚尝试扩展彼得的答案以包含视觉线映射,以便您可以一次执行多条线。我个人更喜欢 ctrlj / k 但你可以为所欲为。享受吧。

      nnoremap <c-j> ddp
      nnoremap <c-k> ddkP
      vnoremap <c-j> dp'[V']
      vnoremap <c-k> dkP'[V']
      

      【讨论】:

        猜你喜欢
        • 2013-06-11
        • 2021-01-31
        • 2018-12-31
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 2011-05-17
        • 2011-04-29
        相关资源
        最近更新 更多