diff --git a/lua/nvim-tree.lua b/lua/nvim-tree.lua index baca7955..1ddaac1d 100644 --- a/lua/nvim-tree.lua +++ b/lua/nvim-tree.lua @@ -128,10 +128,11 @@ function M.on_enter() local disable_netrw = vim.g.nvim_tree_disable_netrw or 1 local hijack_netrw = vim.g.nvim_tree_hijack_netrw or 1 if is_dir then - api.nvim_command('lcd '..bufname) + lib.Tree.cwd = vim.fn.expand(bufname) end + local netrw_disabled = hijack_netrw == 1 or disable_netrw == 1 local should_open = vim.g.nvim_tree_auto_open == 1 - and ((is_dir and (hijack_netrw == 1 or disable_netrw == 1)) or bufname == '') + and ((is_dir and netrw_disabled) or bufname == '') and not vim.tbl_contains(ft_ignore, buftype) lib.init(should_open, should_open) end diff --git a/lua/nvim-tree/lib.lua b/lua/nvim-tree/lib.lua index f2b735aa..c4c799e9 100644 --- a/lua/nvim-tree/lib.lua +++ b/lua/nvim-tree/lib.lua @@ -25,7 +25,9 @@ M.Tree = { } function M.init(with_open, with_reload) - M.Tree.cwd = luv.cwd() + if not M.Tree.cwd then + M.Tree.cwd = luv.cwd() + end git.git_root(M.Tree.cwd) populate(M.Tree.entries, M.Tree.cwd) @@ -411,6 +413,7 @@ function M.change_dir(foldername) end vim.cmd('lcd '..foldername) + M.Tree.cwd = foldername M.Tree.entries = {} M.init(false, true) end