sxwpb

joined 5 months ago
[–] [email protected] 3 points 4 days ago* (last edited 4 days ago) (3 children)

I just use it all the time when I forget what I changed and want to make sure I’m ok with all changes before saving.

It is very similar to a command in emacs called M-x diff-buffer-with-file.

21
submitted 5 days ago* (last edited 1 day ago) by [email protected] to c/[email protected]
 

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

[–] [email protected] 3 points 3 months ago

new disable foldtext option is cool