在 Vim 上搜索和替换后查看更改?

Jos*_*ose 3 vim

我有没有办法在 vim 中查看搜索和替换生成的更改?

例如,以下示例删除尾随空格

:%s/\s\+$//g
Run Code Online (Sandbox Code Playgroud)

但是说,我不确定正则表达式,恐怕它改变了我不想改变的东西。但我也不想使用gc代替g,因为确认太多更改会令人困惑并且需要一段时间,相反,我希望看到新缓冲区中的更改,作为某种列表。这可能吗?

And*_*dev 5

您可以使用一个古老的技巧来查看已保存文件与最新更改之间的差异。你可以看到它:help :DiffOrig

它归结为这个命令:

 command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
    \ | wincmd p | diffthis
Run Code Online (Sandbox Code Playgroud)

将其放入 .vimrc 后,您可以保存文件,进行替换(或任何其他您喜欢的更改),然后运行:DiffOrig以查看更改。u如果您对结果不满意,您可以按撤消,或者您可以保存文件。

这确实意味着您必须在运行替换之前保存文件,但是根据您的评论,我认为作为工具对您来说已经足够了?

您可能还想查看 vim wiki 中的此页面以获取一些替代建议:http : //vim.wikia.com/wiki/Diff_current_buffer_and_the_original_file