diff --git a/README.md b/README.md index 4ca3c35e..4c60b51d 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,7 @@ require'nvim-tree'.setup { }, actions = { change_dir = { + enable = true, global = false, }, open_file = { diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 572fa216..1ab222fd 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -132,6 +132,7 @@ function. }, actions = { change_dir = { + enable = true, global = false, }, open_file = { @@ -397,6 +398,11 @@ Here is a list of the options available in the setup call: *nvim-tree.actions* |actions|: configuration for various actions + - |actions.change_dir.enable|: change the working directory when changing + directories in the tree. + type: `boolean` + default: `true` + - |actions.change_dir.global|: use `:cd` instead of `:lcd` when changing directories. Consider that this might cause issues with the |update_cwd| options. diff --git a/lua/nvim-tree.lua b/lua/nvim-tree.lua index ebd7c6a7..6cba681f 100644 --- a/lua/nvim-tree.lua +++ b/lua/nvim-tree.lua @@ -358,6 +358,7 @@ local DEFAULT_OPTS = { }, actions = { change_dir = { + enable = true, global = vim.g.nvim_tree_change_dir_global == 1, }, open_file = { diff --git a/lua/nvim-tree/actions/change-dir.lua b/lua/nvim-tree/actions/change-dir.lua index 738a5335..e3e72102 100644 --- a/lua/nvim-tree/actions/change-dir.lua +++ b/lua/nvim-tree/actions/change-dir.lua @@ -5,6 +5,7 @@ local M = { current_tab = a.nvim_get_current_tabpage(), options = { global = false, + change_cwd = true, } } @@ -23,7 +24,7 @@ function M.fn(name, with_open) end function M.force_dirchange(foldername, with_open) - if vim.tbl_isempty(vim.v.event) then + if M.options.change_cwd and vim.tbl_isempty(vim.v.event) then if M.options.global then vim.cmd('cd '..vim.fn.fnameescape(foldername)) else @@ -39,6 +40,7 @@ function M.force_dirchange(foldername, with_open) end function M.setup(options) + M.options.change_cwd = options.actions.change_dir.enable M.options.global = options.actions.change_dir.global end