2010-12-19 55 views
12

我做以下一些文本複製引號內,並粘貼在不同的地方(引號內爲好):如何用緩衝區中的字符串替換引號中的字符串?

di" 
go-to-buffer-for-copy 
copy-string (ex. yi") 
then-go-to-prev-buffer 
paste-to-string (p) 

但我想這樣做的一個簡單的方法,如:

yi" 
go-to-buffer-for-paste 
replace-inner-quotes-to-yanked-text 

回答

35

對於「replace-inner-quotes-to-yanked-text」,您可以使用vi"p

+0

它有複製和粘貼嗎? '\'' – 2010-12-19 18:53:32

+1

的確,謝謝。 – 2010-12-19 19:45:55

+1

你能想到一個允許用'.'重做的版本嗎?除了當我想在多個地方做同樣的事情時,我完全可以做到這一點。在上面的情況下,最後一個緩衝區將被刪除的文本替換,並且在重做時不會捕獲選擇內容。我現在的解決方案是''+ yi'''把文本放在我的系統剪貼板中,'ci「從剪貼板粘貼。只有幾個字符比我想要的更多:) – 2013-08-06 00:07:29

1

(拉我的評論到自己的答案)

假設你使用vim與系統剪貼板,你可以做到以下幾點:

  • "+yi"到引號內的文字複製到系統剪貼板
  • 將光標置於要放置文本的引號內
  • ci"<Ctrl-V><Esc>用剪貼板的內容替換引號內的內容

一個好處是,如果要將原始文本放在多個位置,可以將光標置於下一個位置並按.

vi"p,由Randy Morris提出,但它取代了默認寄存器的內容,並且選擇將不會在「do again」命令中捕獲,只會粘貼。

您仍然可以使用"0寄存器來訪問您的原始文本,但我還沒有找到一個可以在引號內部更改並以重做方式粘貼的命令。

1

此方法,可以留出插入模式,並且不需要無名剪貼板映射到系統剪貼板:引號

  • ?'之後的前幾個字母裏面

    • yi"(抽出目標引號(找回來)的當前內容
    • p(膏)
    • dt"(刪除預先存在的內容,這是在引號
  • 相關問題