相关疑难解决方法(0)

在Vim中有没有一种方法可以在不将文本放入寄存器的情况下删除?

使用Vim我经常想用我刚刚拉出的块替换代码块.

但是当我删除要替换的代码块时,该块本身会进入寄存器,该寄存器会擦除我刚刚移动的块.所以我习惯于yanking,然后插入,然后删除我不想要的东西,但是对于大块代码,这会变得混乱,试图保持插入的块和块分开删除.

那么在Vim中替换文本的最简单,最快捷的方法是什么?

  • 有没有办法删除文本而不将其放入注册表?
  • 有没有办法说例如"替换下一个单词"或"替换为下一个段落"
  • 或者是以某种方式使用多寄存器功能的最佳方式?

vim replace vim-registers

461
推荐指数
14
解决办法
7万
查看次数

VIM:有没有办法让vim在你删除文本时不复制

我喜欢vim,但我遇到的一个问题是每当我使用xd删除文本时,它都会将删除的文本复制到缓冲区/剪贴板中.

更具体地说,当我复制了一些文本时,这是一个问题,然后我需要在粘贴第一个文本之前删除第二个文本块.

是否有删除文本但不复制文本的命令?如果没有,是否有自定义命令?

谢谢!

vim

7
推荐指数
2
解决办法
288
查看次数

删除时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
查看次数

标签 统计

vim ×3

replace ×1

vi ×1

vim-registers ×1