3
submitted 1 month ago* (last edited 4 weeks 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

you are viewing a single comment's thread
view the rest of the comments
[-] [email protected] 1 points 1 month ago

You know what I usually do in that case ? Press undo until I'm back to no change haha. And each undo jumps you back to each change.

But this looks great and is worth considering, especially with how neat it is. Clever thinking on those buffer local mappings.

this post was submitted on 18 Aug 2024
3 points (100.0% liked)

Neovim

2106 readers
7 users here now

founded 1 year ago
MODERATORS