stevearc / oil.nvim

Neovim file explorer: edit your filesystem like a buffer
MIT License
3.84k stars 110 forks source link

bug: Oil does not remember the initial buffer if you open a file with preview window active #291

Closed murtaza64 closed 6 months ago

murtaza64 commented 8 months ago

Did you check the docs and existing issues?

Neovim version (nvim -v)

0.9.4

Operating system/version

MacOS 13.6

Describe the bug

Sometimes, closing Oil does not return you to the buffer you opened it from. Simple steps to reproduce below.

What is the severity of this bug?

tolerable (can work around it)

Steps To Reproduce

  1. nvim -u repro.lua a.txt
  2. :Oil
  3. open preview using ^P
  4. navigagte to and open b.txt (i.e. via \)
  5. :Oil
  6. ^C
  7. You will be returned to a.txt

Expected Behavior

You return to the b.txt buffer (since that was the buffer you were in when you last opened Oil)

Directory structure

a.txt b.txt repro.lua

Repro

-- save as repro.lua
-- run with nvim -u repro.lua
-- DO NOT change the paths
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "runtime", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "--single-branch",
    "https://github.com/folke/lazy.nvim.git",
    lazypath,
  })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  {
        "stevearc/oil.nvim",
        config = function()
            require("oil").setup({
              -- add any needed settings here
            })
        end,
  },
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

Did you check the bug with a clean config?

stevearc commented 6 months ago

Should be fixed now. Thanks for the report!