2012-08-04 152 views
1

我有很多行一些Python代碼類似的行的其餘部分:正則表達式搜索和替換,包括括號

print "some text" + variables + "more text and special characters .. etc" 

我想修改該把一切印刷後的括號內,就像這樣:

print ("some text" + variables + "more text and special characters .. etc") 

如何在vim中使用正則表達式來做到這一點?

+0

以下鏈接可能對您有所幫助! 2012-08-04 15:22:33

回答

2

使用此替代:

%s/print \(.*$\)/print (\1) 

\(.*$\)匹配一切都交給了線的末端,並使用轉義的括號捕獲它在一組。替換包括使用\1的該組,其中包含文字括號。

1
:%s/print \(.*\)/print(\1)/c 

或者如果你直觀地選擇多行

:'<,'>s/print \(.*\)/print(\1)/c 

% - 每行
'<,'> - 選擇線路
s - 替代
c - 確認 - 告訴你什麼是匹配你轉換
print \(.*\) - 完全匹配打印後跟一個空格N組的一切\(\)
print(\1)之間 - 用打印代替(<第一場比賽>)

Vim有一些正則表達式規則的功能,你可以做:help substitute:help regex,看看它們是什麼。

相關問題