Skip to content

Instantly share code, notes, and snippets.

@dtanphat9388
Created July 30, 2024 18:17
Show Gist options
  • Save dtanphat9388/e52ded2957b0f910fb10c91778bbbd9b to your computer and use it in GitHub Desktop.
Save dtanphat9388/e52ded2957b0f910fb10c91778bbbd9b to your computer and use it in GitHub Desktop.
remove range of selected files in nvim-tree
local function on_attach(bufnr)
local api = require("nvim-tree.api")
local core = require("nvim-tree.core")
local utils = require("nvim-tree.utils")
-- NOTE: set nvim-tree.ui.confirm.remove = false to take effect
local function remove_range_nodes()
local nodes = utils.get_nodes_by_line(api.tree.get_nodes().nodes, core.get_nodes_starting_line())
local lines = {}
if vim.fn.mode() == "v" or vim.fn.mode() == "V" then
local start_pos = vim.fn.getpos("v")
local end_pos = vim.fn.getcurpos()
local srow = start_pos[2]
local erow = end_pos[2]
lines = vim.fn.range(srow, erow)
end
for _, line in pairs(lines) do
api.fs.remove(nodes[line])
end
end
vim.keymap.set("v", "D", remove_range_nodes, opts("remove range nodes"))
-- ... other keymap
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment