Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
ae412edd94
fix: hijack all directory buffers at setup, not just current
Problem: when neovim is opened with multiple directory arguments
(e.g. nvim dir1/ dir2/), only the first directory gets handled by oil.
The BufAdd autocmd that renames directory buffers to oil:// URLs is
registered inside setup(), but neovim creates all argument buffers
before setup() runs. The initial hijack block only processes
nvim_get_current_buf(), so additional directory buffers are never
renamed and remain as plain empty buffers.

Solution: iterate all existing buffers at setup time instead of only
the current one. Each directory buffer gets renamed to an oil:// URL
so that BufReadCmd fires when the user switches to it.

Closes: stevearc/oil.nvim#670
2026-02-21 02:18:17 -05:00

View file

@ -1446,9 +1446,10 @@ M.setup = function(opts)
end, end,
}) })
local bufnr = vim.api.nvim_get_current_buf() for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
if maybe_hijack_directory_buffer(bufnr) and vim.v.vim_did_enter == 1 then if maybe_hijack_directory_buffer(bufnr) and vim.v.vim_did_enter == 1 then
M.load_oil_buffer(bufnr) M.load_oil_buffer(bufnr)
end
end end
end end
end end