2015-06-08 58 views
3

在正常模式下的vim中,我可以使用%移動到右括號。是否有與我可以在搜索和替換命令中使用的等價物?假設我有一些我想從中刪除斜體的乳膠代碼。在一個簡單的場景中,像:%s/{\\it \(.*\)}/\1/gc就可以完成這項工作,但實際上這將停在第一個閉合的大括號上,這很可能會關閉其他東西,因爲我可能有{\it some text in italics {\bf and some in bold also} ...possibly so many other commands with curly braces... and finally my closing curly brace:}匹配vim搜索中的右括號並替換

+1

您是否檢查過[此SO回答](http://stackoverflow.com/a/5146698/3832970)? –

+0

@stribizhev不,我沒有看到,謝謝。似乎長期的答案是學習perl,短期的解決方案是編寫一個小的宏,並使用搜索,實際上它不應該比自動搜索更慢,並用'confirm'開關替換。 –

+3

不完全是你問的,但蒂姆波普的[vim-surround](https://github.com/tpope/vim-surround)可能仍然會讓你的生活更輕鬆。 – lcd047

回答

0

這可能是你所說的「寫一個小宏和使用搜索」的意思,但你可以使用帶有normal命令正常模式命令,如:

:g|{\\it|normal /{\\it^M%mm%5x`mx 

:g將觸發每個匹配線圖案{\it,並且每場比賽,它運行在正常模式命令/{\\it跳轉到正確的地方的路線,%去右括號,mm把一個關口關閉一個,%跳回開場之一,5x刪除打開命令,然後`m跳回標記,然後x刪除關閉的命令。

這將不會處理的是幾行{\it開口在一行上。 (但你可以再運行一次)。比學習Perl快。