diff --git a/after/plugin/nvim-tree.lua b/after/plugin/nvim-tree.lua
index 84a0625f..e85d0184 100644
--- a/after/plugin/nvim-tree.lua
+++ b/after/plugin/nvim-tree.lua
@@ -1,12 +1,23 @@
-vim.api.nvim_create_autocmd({"QuitPre"}, {
-    callback = function() vim.cmd("NvimTreeClose") end,
-})
+local function open_nvim_tree(data)
+
+  -- buffer is a real file on the disk
+  local real_file = vim.fn.filereadable(data.file) == 1
 
+  -- buffer is a [No Name]
+  local no_name = data.file == "" and vim.bo[data.buf].buftype == ""
 
-local function open_nvim_tree()
+  if not real_file and not no_name then
+    return
+  end
 
-  -- open the tree
-  require("nvim-tree.api").tree.open()
+  -- open the tree, find the file but don't focus it
+  require("nvim-tree.api").tree.toggle({ focus = false, find_file = true, })
 end
 
+-- Auto open
 vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
+
+-- Auto close
+vim.api.nvim_create_autocmd({"QuitPre"}, {
+    callback = function() vim.cmd("NvimTreeClose") end,
+})