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
This commit is contained in:
parent
bb128e96af
commit
ae412edd94
1 changed files with 4 additions and 3 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue