diff --git a/lua/oil/mutator/init.lua b/lua/oil/mutator/init.lua index a2347da..e61801e 100644 --- a/lua/oil/mutator/init.lua +++ b/lua/oil/mutator/init.lua @@ -433,6 +433,8 @@ end ---@param confirm nil|boolean M.try_write_changes = function(confirm) + local current_buf = vim.api.nvim_get_current_buf() + local was_modified = vim.bo.modified local buffers = view.get_all_buffers() local all_diffs = {} local all_errors = {} @@ -454,6 +456,10 @@ M.try_write_changes = function(confirm) for _, bufnr in ipairs(buffers) do pcall(vim.api.nvim_buf_set_option, bufnr, "modifiable", was_modifiable[bufnr]) end + -- The ":write" will set nomodified even if we cancel here, so we need to restore it + if was_modified then + vim.bo[current_buf].modified = true + end end local ns = vim.api.nvim_create_namespace("Oil")