diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 9f1721e6935..3c5c6c41b7b 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -188,6 +188,7 @@ Show the mappings: `g?` `s` Run System |nvim-tree-api.node.run.system()| `S` Search |nvim-tree-api.tree.search_node()| `U` Toggle Filter: Hidden |nvim-tree-api.tree.toggle_custom_filter()| +`u` Rename: Full Path |nvim-tree-api.fs.rename_full()| `W` Collapse |nvim-tree-api.tree.collapse_all()| `x` Cut |nvim-tree-api.fs.cut()| `y` Copy Name |nvim-tree-api.fs.copy.filename()| @@ -1717,6 +1718,12 @@ fs.rename_sub({node}) *nvim-tree-api.fs.rename_sub()* Parameters: ~ • {node} (Node) file or folder +fs.rename_full({node}) *nvim-tree-api.fs.rename_full()* + Prompt to rename a file or folder by absolute path. + + Parameters: ~ + • {node} (Node) file or folder + fs.cut({node}) *nvim-tree-api.fs.cut()* Cut a file or folder to the nvim-tree clipboard. @@ -2106,6 +2113,7 @@ You are encouraged to copy these to your own |nvim-tree.on_attach| function. vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden')) + vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path')) vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) diff --git a/lua/nvim-tree/actions/fs/rename-file.lua b/lua/nvim-tree/actions/fs/rename-file.lua index caae5d0a0e6..da904ff8436 100644 --- a/lua/nvim-tree/actions/fs/rename-file.lua +++ b/lua/nvim-tree/actions/fs/rename-file.lua @@ -10,6 +10,7 @@ local M = { } local ALLOWED_MODIFIERS = { + [":p"] = true, [":p:h"] = true, [":t"] = true, [":t:r"] = true, diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index c4a6e8771b6..9aa603de702 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -141,6 +141,7 @@ Api.fs.rename_node = wrap_node(require("nvim-tree.actions.fs.rename-file").fn ": Api.fs.rename = wrap_node(require("nvim-tree.actions.fs.rename-file").fn ":t") Api.fs.rename_sub = wrap_node(require("nvim-tree.actions.fs.rename-file").fn ":p:h") Api.fs.rename_basename = wrap_node(require("nvim-tree.actions.fs.rename-file").fn ":t:r") +Api.fs.rename_full = wrap_node(require("nvim-tree.actions.fs.rename-file").fn ":p") Api.fs.cut = wrap_node(require("nvim-tree.actions.fs.copy-paste").cut) Api.fs.paste = wrap_node(require("nvim-tree.actions.fs.copy-paste").paste) Api.fs.clear_clipboard = wrap(require("nvim-tree.actions.fs.copy-paste").clear_clipboard) diff --git a/lua/nvim-tree/keymap.lua b/lua/nvim-tree/keymap.lua index b61f3ac1ed5..7f2b80d2de8 100644 --- a/lua/nvim-tree/keymap.lua +++ b/lua/nvim-tree/keymap.lua @@ -82,6 +82,7 @@ function M.default_on_attach(bufnr) vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Filter: Hidden')) + vim.keymap.set('n', 'u', api.fs.rename_full, opts('Rename: Full Path')) vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name'))