我在vim中设置了一个预缓冲区写入挂钩,它在将缓冲区的内容保存到文件之前进行一些小的调整。停止vim函数中的替换漏入所有替换的历史记录
if !exists("autocommands_loaded")
let autocommands_loaded = 1
autocmd BufWritePre *.php call TidyUpFormatting()
endif
func! TidyUpFormatting()
let save_cursor = getpos('.')
%s/\s\+$//ge
%s/\($\n\s*\)\+\%$//ge
%s/var_dump /var_dump/ge
%s/){/) {/ge
%s/(/(/ge
%s/if(/if (/ge
%s/while(/while (/ge
call setpos('.', save_cursor)
endfunction
这是在我的ftplugin/php.vim文件中。 我注意到,尽管TidyUpFormatting中的这些替换显示在所有替换的历史记录中 - 例如,如果我通过手动完成的替换列表向上滚动,那么它们就是。
有没有一个标志我可以使用,或者确实有更好的方法来做到这一点,以便这些替换不会“泄漏”?
这似乎有帮助 - 谢谢! – kguest 2013-03-18 16:39:06