-- {{ ansible_managed }} local nvim_tree = require('nvim-tree'); local nvim_tree_icons = require('nvim-web-devicons'); local api = require('nvim-tree.api') local function toggle_tree() api.tree.toggle({ find_file = true, update_root = true, focus = true }) end vim.api.nvim_set_keymap( 'n', '', '', { noremap = true, silent = true, callback = toggle_tree } ) local function my_on_attach(bufnr) local function opts(desc) return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } end vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) vim.keymap.set('n', '', api.tree.toggle_hidden_filter, opts('Toggle filter: Dotfiles')) vim.keymap.set('n', '', api.node.open.edit, opts('Open')) vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) vim.keymap.set('n', 'F', api.live_filter.clear, opts('Live filter: Clear')) vim.keymap.set('n', 'f', api.live_filter.start, opts('Live filter: Start')) vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle filter: Git Ignore')) vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle bookmark')) vim.keymap.set('n', 'q', api.tree.close, opts('Close')) vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) vim.keymap.set('n', 'a', api.fs.create, opts('Create a file')) vim.keymap.set("n", "r", api.fs.rename, opts("Rename")) vim.keymap.set('n', 'd', api.fs.remove, opts('Delete a file')) end nvim_tree.setup { on_attach = my_on_attach, } nvim_tree_icons.setup();