gpt4 book ai didi

Vim 粘贴 -- 滚动浏览先前拉出的文本

转载 作者:行者123 更新时间:2023-12-03 21:13:55 28 4
gpt4 key购买 nike

我正在尝试提高 Vim 中粘贴功能的可用性,因为太多不同的删除操作(实际上我认为它们都是这样)也会拉到粘贴缓冲区。

这意味着我不再能够删除一些我想粘贴到某处的文本,清理一些东西,以及。然后 做我的粘贴。我不知道为什么这是我喜欢做事的顺序,但我不打算改变它。

在返回进行清理之前,我基本上必须“原子地”移动,否则我会得到令人沮丧的逗号、括号或空格粘贴。哦,我知道我按其他顺序做的原因。它只是更有效。我不必移动到目的地,然后 返回 清理,然后再次返回 .

如何改善这一点?我的建议是一个插件,可用于事后增加粘贴操作。点击p ,看到它粘贴了一个无用的临时删除字符,此时(在粘贴操作之后立即)我们的插件将允许一个键循环通过先前删除的寄存器,就地更新我们的粘贴。

这样我可以删除所有我想要的东西,而且我实际上可以快速提取任何最近删除的项目,只要它是一个连续的片段。这当然很容易通过视觉选择然后删除来设置。这牺牲了易用性的特殊性,因为我不再需要记住指定一些特定的命名寄存器以用于特定的粘贴。

特别是,应该有一个堆栈,其中 yanks 和 delete 都累积到其中,稍后在粘贴过程中使用单个绑定(bind)快速遍历该堆栈。

有没有一个插件已经这样做了?

最佳答案

您对编号的寄存器( :h quote_number )有点困惑。

只有一个拉动寄存器 那是 "0 .

除此之外还有九个编号删除寄存器 "1"9 .这些被填充为一个队列,最近的删除在顶部。

对于删除寄存器"1"9 Vim 具有您要求的内置功能:您可以粘贴 "1p ,如果不是你要找的,你可以重复u. u. u.切换寄存器 "2 , "3 , "4等,直到你找到合适的。此行为记录在 :h redo-register .

滚动浏览以前被拉出的文本通常是通过插件完成的,我所知道的最流行的插件

  • YankRing.vim , “保留以前的 yanks、更改和删除的历史记录”和
  • yankstack ,“为 vim 实现 emacs 的 kill ring 的轻量级实现”。
  • 关于Vim 粘贴 -- 滚动浏览先前拉出的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013750/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com