我在 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 中的这些替换显示在所有替换的历史记录中 - 例如,如果我向上滚动浏览我手动完成的替换列表,它们就在那里。
有没有我可以使用的标志,或者确实有更好的方法来做到这一点,这样这些替换就不会“泄露”?