Hello, I wanted to share a small keymap I made. It lets you inspect unsaved changes in the current file. It uses diff mode, in a vertical split.
To close the diff mode, just press q in the scratch buffer.
vim.keymap.set(
'n',
'<M-C-D>',
function()
local tmpft = vim.bo.filetype
vim.cmd.vnew()
vim.bo.filetype = tmpft
vim.bo.buftype = 'nofile'
vim.keymap.set(
'n',
'q',
'<cmd>bw<cr>',
{ noremap = true, silent = true, buffer = true }
)
vim.cmd('silent r#|0d_')
vim.bo.modifiable = false
vim.cmd('diffthis|wincmd p|diffthis')
end,
{ noremap = true }
)
edit: I discovered that this functionality is actually documented in the help pages (:h :DiffOrig). It’s basically the same action but bound to a command
Ah shit, here’s a use-case, to see exactly what you’ve “undo’d”. I often remember that I had something in one state a while ago, undo until I see it, then have to carefully go back to ensure I return everything I did between the two states.
With this, I save, using, press the binding, and see the diff clear as day.
Now that binding is increadibly useful for me. Indobuae undo-tree but this’d be much more intuitive, atleast for me
Yeah havn’t checked how to use undo-tree yet, gotta do that at some point, seems really useful.
But I have put this post’s keymap in my config and first impressions are pretty good. Now I just have to remember to use it haha