相关疑难解决方法(0)

删除时vim切换缓冲区覆盖行为

Vim很棒,但是和很多人一样,当我想要复制,删除,然后粘贴时,我会非常恼火 - 抓取行动会覆盖yank缓冲区.

现在我知道有101种解决方法和映射,其中一些是在这样的帖子中列举的:有什么办法在vim中删除而不覆盖你的上一次猛拉?

但所有这些解决方案都有缺点 - 即使我是一个缓冲大师(我不是).例如,多余的键击 - 而我通常xxxx快速删除4个字符(只有一个按键因为我按住它并等待自动重复),现在切换到x,x,x,x或无论映射我必须使用不同的缓冲区.

真正理想的只是一个模式切换,你可以打开和关闭D,d,X和x键的副作用行为,这样他们可以交替地或不也将它们的文本写入缓冲区.这样我就可以简单地进入"无副作用"模式并删除内容,然后在我准备好时粘贴.如果需要,重新启用副作用.

有谁知道这样做的方法?

[更新:解决方案]好吧我明白了:我写了一个能够切换"无副作用"模式的功能......完美运行!请参阅下面我接受的正确答案

[更新#2]我的解决方案仍然很好用,我一直在使用它时,我正在进行大量的删除和粘贴.但同时我还发现了一种更简单的方法来满足复制,粘贴,删除的特定用例 - 对于要删除的文本是连续的简单情况.

在正常处理文本之后,我会使用v命令在视觉上突出显示要删除的文本,然后使用p命令将其粘贴到其上.在没有任何特殊映射的情况下实现了期望的效果.

这个工作流程的唯一问题是,如果我想再次粘贴,粘贴突出显示文本的行为会覆盖原始粘贴缓冲区,但是使用.vimrc中的以下映射可以轻松更改此行为:

vnoremap p "_dp
vnoremap P "_dP
Run Code Online (Sandbox Code Playgroud)

vi vim

4
推荐指数
2
解决办法
1022
查看次数

标签 统计

vi ×1

vim ×1