【问题标题】:In Vim, how to make commands like gg, dG work in one line?在 Vim 中,如何使 gg、dG 等命令在一行中工作?
【发布时间】:2020-04-30 12:30:00
【问题描述】:

我经常一起执行这些命令:

"gg, dG, i, shift+insert"(将所有内容替换到我的剪贴板文本)

我觉得某些东西绝对可以组合在一起。我没有完全按照 vim 函数说明进行操作。

是否可以使用 ':gg dG i...' 之类的东西?因此,每当我输入“:”编辑器模式时,我都可以使用向上箭头键来使用我使用的最后一个命令。

【问题讨论】:

  • 我尝试了 'gg, yG',它并没有真正从我的剪贴板复制,而是从 vim 本身进行了单独的 yank。

标签: vim


【解决方案1】:

您可以将各种命令组合在一张地图中,例如gy

nnoremap gy ggdGi<c-r>+<esc>

这会复制剪贴板寄存器的内容 (:help "+)

【讨论】:

  • 谢谢!到目前为止,你的效果最好,但它在 ggdG 处停止,没有进入插入模式和粘贴。
  • 在地图中,您能否尝试将+ 替换为* 并检查它是否有效?
  • 不,nnoremap gy ggdGi* - 仍然停在 G.
  • 这样会更好:%delete | put +&lt;CR&gt;
  • @D.BenKnoble,它删除了所有内容,但给出了错误“无效的注册名称”,没有粘贴我的剪贴板内容。
【解决方案2】:

试试

ggdG"*p

请参阅bullet 7 关于寄存器"*"+。试一试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 2021-01-31
    • 1970-01-01
    相关资源
    最近更新 更多