使用Vim我经常想用我刚刚拉出的块替换代码块.
但是当我删除要替换的代码块时,该块本身会进入寄存器,该寄存器会擦除我刚刚移动的块.所以我习惯于yanking,然后插入,然后删除我不想要的东西,但是对于大块代码,这会变得混乱,试图保持插入的块和块分开删除.
那么在Vim中替换文本的最简单,最快捷的方法是什么?
我想在寄存器中划一条线:"{register}y但是不要覆盖寄存器中先前的内容.我经常需要在寄存器中复制非连续的行,我有时会像堆栈一样使用寄存器.
例:
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
我想复制line1,通过把光标放在它并输入"ay,然后事情line3做"ay.然后,当我会做"ap,既line1和line3将被粘贴.
这可能没有插件吗?有插件吗?
这是我的问题:
我处于视觉模式.
我选择文本并将其复制到缓冲区.((y)的ANK)
我选择了另一个要替换的文本并粘贴缓冲区.((糊)
现在第二个选择已经在缓冲区中被替换,但是我希望第一个选择仍然在那里.
有任何想法吗?
我有一行文字,我已经猛拉了yy.现在我想用这个文本替换其他几个地方的行.麻烦的是,当我选择V要替换的行并粘贴时p,所选的文本会被自动拉出!这就是我不想要的.
更改寄存器不起作用,因为粘贴和抽取都是使用新选择的寄存器完成的.
粘贴选定文本时保留寄存器内容的命令是什么?
让我们说我有这样的文字:
$test = 'lorem'; $test2= 'ipsum';
我想复制lorem并粘贴到ipsum中.我试着做yi'lorem,然后继续使用ipsum,ci'但是用ipsum替换了我的pastebin.我以前的副本丢失了.
每次我复制一个单词并希望将其替换为多个单词时,我会:
在这个过程之后,被替换的单词将被拉出并且不能继续替换新单词,因为我丢失了第一个被拉出的单词.所以,我必须再次复制第一个猛拉的词.
任何人都可以指导我如何以有效的方式实现我的目标吗?如果我的语言不会改变,那就足够了.
所以我发现在Vim中我的一个常见任务是将PUT连接到行的开头或行的结尾.所以我的映射可能是:
nmap <Leader>p $p
nmap <Leader>P 0P
Run Code Online (Sandbox Code Playgroud)
但是,我真正想做的是在推杆之前选择包含一个注册表.
因此,例如"a,P将从寄存器a放到行的开头.
有没有办法用映射做到这一点?
我通常想替换vim中的一些内容。复制后,我选择要替换的内容,然后粘贴我复制的内容。但是接下来要替换的内容会被复制到剪贴板,我无法替换下一个地方。我希望剪贴板中的内容在我粘贴到某个选定的地方时不会改变。