我刚刚在我的 .vimrc 中创建了一个新映射,以便在新窗口中快速打开我正在使用的存储库的差异。
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Quickly see diff
" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Open /tmp/tmp.diff in a new split
" delete the entire content
" read in the diff
nnoremap <leader>d :vsp /tmp/tmp.diff<CR>ggdG<bar>:r !hg diff<CR>
" Automatically write the diff when exiting the buffer so we're not asked to
" save it
autocmd! BufUnload /tmp/tmp.diff :w<CR>
如您所见,我在退出缓冲区时使用 BufUnload autocmd 保存文件,因为我不想在每次查看差异时手动写入文件。但我宁愿让 Vim 不警告我。
那么有没有办法在 Vim 中打开一个缓冲区,当它有未保存的内容时它是否关闭?如果我不必打开特定文件而不是匿名缓冲区,我也会喜欢它。
我宁愿不使用自动写入。
(我只是 Vim/Vimscript 的初学者,所以如果我应该为此编写一个函数,请告诉我)