17

我希望任何已删除的文本始终进入编号寄存器,但我经常会在编号寄存器中找到我最近删除的内容,但它不存在,因为它不到一行。

编号寄存器 1 包含最近删除或更改命令删除的文本,除非命令指定另一个寄存器或文本少于一行(然后使用小删除寄存器)。每次连续删除或更改时,Vim 将寄存器 1 的先前内容移入寄存器 2,将 2 移入寄存器 3,依此类推,丢失寄存器 9 的先前内容。

这是一件相当罕见的事情,但是当它发生时,真的很烦人,因为我必须撤消回到我删除文本的位置,然后删除到一个命名寄存器或在它超出寄存器 0 之前立即使用已删除的文本,因为我在粘贴我刚刚删除的小文本的过程中删除其他内容(杂散的空格、不好的评论等)。

我希望小删除条件对于输入编号寄存器 1-9 的文本无关紧要。任何人都知道实现这一目标的方法吗?

4

2 回答 2

8

Reddit 上的另一个这样的功能请求中,发现 Vim 中存在一个错误,当

:set clipboard^=unnamed

该错误在 Vim 7.3.649 中修复。因此,如果您使用旧版本,您仍然可以从该错误中受益 :-)

如果你真的认为这是有用的行为,你可以在vim_dev 邮件列表中提出这个增强请求,但一般来说,额外的选项是不受欢迎的。如果您可以提出令人信服的论点并提供包含文档和测试的完整补丁,您的机会就会更高。

于 2013-02-20T08:33:08.083 回答
4

在neovim编辑器中查看 Pull Request :

[RFC] 添加一个选项以使用编号寄存器进行较小的删除 #8169

我尝试添加该smalldel选项,该选项允许您配置要推送到编号寄存器“1..”9 中的已删除字符的最小数量

此 PR 合并后的下一个 neovim 版本将包含此选项。

于 2018-03-25T08:04:46.453 回答