2012-11-06 145 views
10

很多時候我發現我會想要在引號之間抽出內容並將它們粘貼到另一組引號中。例如,以此代碼爲例。Vim替換內部引號

var foo = 'bar', 
    baz = 'buz'; 

我通常會做一個yi'內的'bar'猛拉字酒吧

我該如何取代buz與我的猛拉?我知道一個選擇是做di'"0P,我只是想知道是否有一個我忽略的更簡單的解決方案。

回答

22

用光標buzvi'p這個詞的任意位置可以直觀地選擇引號內部,然後放入最近的內容。

+0

你搖滾......謝謝! –

+1

@ShaneStillwell,閱讀':help text-objects'來了解它是如何工作的。另外,你可能喜歡插件'surround':http://goo.gl/s9x4F。 –

+1

它實際上也適用於當光標位於引號字符''' –

2

我經常需要這個,我寫了一個插件來簡化並允許最大速度:ReplaceWithRegister

該插件提供了一個二合一的gr命令,該命令用{運動} /文本對象覆蓋的文本,整行或當前選擇內容替換寄存器的內容;舊文本被刪除到黑洞寄存器中,即它已經消失。它透明地處理許多轉角情況,並允許通過標準.命令快速重複。如果你不喜歡它,它的頁面會鏈接到替代品。

+0

我想我可以習慣這個。所以這既是積極的也是風險:) – sehe

0

也請注意,在以可視模式替換內容後,被替換的內容現在將在您註冊。命令:reg將顯示它。 在您的示例中,命令p將在編輯器中粘貼buz