2012-05-23 56 views
18

我有一行文字我已經被抽出yy。現在我想用這些文字替換其他幾個地方的文字。麻煩的是,當我選擇V要替換的行,並粘貼p時,所選文本被自動抽出!這就是我不想要的。vim如何在粘貼選定文本時保留註冊內容?

更改寄存器不起作用,因爲粘貼和放大都是用新選定的寄存器完成的。

在粘貼選定文本時保留寄存器內容的命令是什麼?

+0

你可能已經意識到了,但我認爲你總是可以用'pdd'解決問題。 – a3nm

+0

@ a3nm你是不是指'pyy',那會再次複製當前行? –

+0

對不起,我的意思是'pjdd'。這就是說,我不明白你的建議。 – a3nm

回答

15

每次p過的東西它進入默認的註冊時間。

要變通此功能,您必須使用"_「黑洞註冊表」,之前您p。這裏是一個自定義映射我有我的~/.vimrc

vnoremap <leader>p "_dP 

它刪除所選的內容和將其放置在黑洞寄存器(這意味着選擇的文本永遠消失),並把默認的寄存器的內容放置之前選擇的文本,同時保持默認寄存器不變。

我用它常常當我需要與另一looooooong網址幾個地方更換loooooooong url和製作一個s//就太麻煩了。

18

您的原始選擇應保留在註冊0。所以,你可以通過移動文件,並使用粘貼猛拉線比其他線路:V"0p

+4

另外,使用':reg'查看當前寄存器的內容。 [This](http://blog.dreasgrech.com/2010/06/vims-black-hole-register.html)是對寄存器的一個很好的解釋,包括黑洞寄存器和_kill buffer_寄存器0-9 。最後:':help register',natch。 – pb2q

+0

這是更好的答案。當已經有專門用於保存被抽出的文本的寄存器時,不需要將已刪除的內容發送到黑洞寄存器 – rviertel

相關問題