我有办法查看搜索生成的更改并在vim中替换吗?
E.g。以下示例删除尾随空格
:%s/\s\+$//g
但是说,我不确定正则表达式,我担心它改变了一些我不想改变的东西。但我也不想使用gc
而不是g
,因为确认太多的更改令人困惑并需要一段时间,而我希望看到新缓冲区中的更改,如某种名单。这可能吗?
答案 0 :(得分:4)
您可以使用一个老技巧来查看已保存文件与最新更改之间的差异。您可以使用:help :DiffOrig
查看。
归结为这个命令:
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
将此文件放入.vimrc后,您可以保存文件,进行替换(或任何其他您喜欢的更改),然后运行:DiffOrig
查看更改。如果您对结果不满意,可以按u
进行撤消,也可以保存文件。
这确实意味着您必须在运行替换之前保存文件,但根据您的评论,我认为这对您来说是否已经足够好了?
您可能还想在vim wiki中查看此页面以获取其他一些提案:http://vim.wikia.com/wiki/Diff_current_buffer_and_the_original_file
答案 1 :(得分: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。它需要选择并使用临时窗口来应用您的更改,保存后,结果将被放回原始文本中。