2011-06-22 51 views

回答

4

幾個問題的答案建議使用替換命令。對我而言,將:global命令與:join命令結合使用感覺更合適。通過創建一個合適的搜索模式開始:

/\n{ 

這適用於在問題中給出的簡單例子,但它可能需要根據您正在使用的文件的內容進行細化。如果保留搜索字段爲空時,Vim會自動使用最後的搜索模式

:g//j 

(這也是真正的:substitute命令):一旦你得到了你的搜索模式,可以運行全局命令。我更喜歡把全球指揮權分成兩個獨立的步驟,但你也可以在一個獨立的步驟中完成。這裏是長手形式:

:g/\n{/join 
0

嘗試以下操作:

:%s/\(class.*\)\_.{/\1\ {/g 

(更新)

0

使用下面的搜索和替換:

:%s/\n{/ {/g 
+0

我早些時候試過..有些如何不起作用。不知道爲什麼。 – robert

+0

在這裏工作,它不依賴於fileformat ...奇怪的 –

0

如何錄製宏,即

/class    # search for class 
gg     # goto beginning of file 
qq     # start recording of macro 
J     # join lines 
n     # move to next match 
q     # stop recording 

執行使用@q

+0

我還需要更改函數頭。所以我想,這是不夠的 – robert

+0

@robert這不是你的問題描述:-)總是描述整個問題,而不是一個子任務。 –

0

對於示例這個工作對我來說在gVim的: %s /class.*\zs\_[^{]*{/ {\r/