2017-10-07 81 views
3

我有辦法查看在vim中搜索和替換生成的更改嗎?在Vim上搜索並替換後查看更改?

例如下面的示例刪除尾部空格

:%s/\s\+$//g 

,但是說,我不知道正則表達式的恐怕它改變的東西,我不想改變。但我也不想使用gc而不是g,因爲確認太多的更改是令人困惑的,需要一段時間,而我希望將新緩衝區中的更改視爲某種列表。這可能嗎?

+0

如果您使用的git你可以使用它的diff命令,看看發生了什麼。 –

+0

或者你可以把它寫到一個單獨的文件並使用vimdiff,但你應該使用git。 –

+0

@MattGregory你能指點我關於如何使用diff與git的正確方向嗎?我使用git,我不知道如何區分一個文件和它自己以前的版本(它應該在另一個提交嗎?還是有一個簡單的方法,而不必爲差異進行提交?),我也會考慮vimdiff謝謝。 – Jose

回答

3

Neovim有一個很好的功能,突出對飛

"As you type a substitution the results will immediately be 
"visible in the edit window. This feature is best highlighted 
"in this video: http://www.youtube.com/watch?v=sA3z6gsqOuw 
if has("nvim") 
    set inccommand=nosplit 
endif 

另一個很酷的選項是插件NarrowRegion替代。它會進行選擇並使用臨時窗口應用您的更改,保存後,結果將放回原始文本中。

4

有一個古老的技巧,您可以使用它來查看保存文件和最新更改之間的差異。你可以用:help :DiffOrig看到它。

它歸結爲這個命令:

command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
    \ | wincmd p | diffthis 

一旦你把你的.vimrc文件,您可以保存文件,使替代(或其他任何你喜歡的變化),並運行:DiffOrig看到變化。如果您對結果不滿意,則可以按u撤消,或者您可以保存該文件。

這意味着您必須在運行substution之前保存該文件,但根據您的意見,我認爲這對於您作爲工具足夠好了嗎?

你可能也想看看這個頁面中VIM維基一些替代方案:http://vim.wikia.com/wiki/Diff_current_buffer_and_the_original_file