2010-03-15 62 views
6

所以VIM:搜索替換了所有可寫緩衝區

1GvG:s/..../g 

可以取代在整個緩衝區

然而,假設我已經裝載多個vim的緩衝區,而我想做一個:結束了所有的可寫的緩衝區;有沒有辦法在vim中做到這一點?

+2

順便說一句,你可以只爲整個緩衝區執行'%s'。 – 2010-03-15 08:05:13

+0

謝謝你問這個!這對我來說是一個嘮叨的問題(但不要太嘮叨,否則我也會在這裏問)。 – 2010-09-27 14:21:50

回答

12

因爲我不能留下評論,所以我會重複Brian的說法,並加上我的2分錢。

我相信你正在尋找的命令是:

:bufdo :%s/..../g | :w 

注:這將寫入每個文件的更改後,所以一定要確保你爲此做好準備。

如果啓用了自動導入,您應該可以在命令末尾刪除「|:w」。

+0

那麼,至少在我的vim(7.2,Ubuntu)中,足以讓''| :如果你不想在變化上寫字,w'就不在圖片上了。 – 2010-09-27 14:21:06

+1

在http://vim.wikia.com/wiki/Search_and_replace_in_multiple_buffers上有一個關於vim wiki的頁面,其中有更多關於尾部'| | :w' – 2011-09-20 22:35:16

+1

@AdrianoVaroliPiazza它可以在沒有'| :w'在'vim'上,但是'vi'是必需的。 – 2013-10-02 10:32:32

4

看看bufdo。還有windotabdo。請記住,每個默認的Vim都不會自動寫入,所以在緩衝區中搜索/替換命令需要打開autowrite。