My Neovim NvimTree Config
~/.config/nvim/after/plugin/nvim-tree-config.lua
lua
-- Function to set up key mappings
local
local api = require('nvim-tree.api')
local
return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
vim.keymap.set('n', '<CR>', api.node.open.edit, opts('Open'))
vim.keymap.set('n', '<Tab>', api.node.open.preview, opts('Open Preview'))
vim.keymap.set('n', '<C-v>', api.node.open.vertical, opts('Open: Vertical Split'))
vim.keymap.set('n', '<C-x>', api.node.open.horizontal, opts('Open: Horizontal Split'))
vim.keymap.set('n', 'a', api.fs.create, opts('Create File Or Directory'))
vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy'))
vim.keymap.set('n', 'g', api.tree.change_root_to_node, opts('CD'))
vim.keymap.set('n', 'i', api.node.show_info_popup, opts('Info'))
vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark'))
vim.keymap.set('n', 'p', api.fs.paste, opts('Paste'))
vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory'))
vim.keymap.set('n', 'r', api.fs.rename, opts('Rename'))
vim.keymap.set('n', 't', api.marks.bulk.trash, opts('Trash Bookmarked'))
vim.keymap.set('n', 'x', api.fs.cut, opts('Cut'))
vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open'))
end
-- Call function to set up key mappings
-- and turn off git icons
require("nvim-tree").setup({
on_attach = my_on_attach,
view = {
side = "right"
},
renderer = {
icons = {
show = {
git = false
}
}
}
})
-- Automatcially open nvim-tree on startup
-- then switch to main buffer
local
require("nvim-tree.api").tree.open()
vim.cmd.wincmd 'p'
end
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
-- Set up to toggle back and forth to nvim-tree
-- and the current buffer
local
if vim.fn.bufname():match 'NvimTree_' then
vim.cmd.wincmd 'p'
else
vim.cmd('NvimTreeOpen')
end
end
-- Toggle to File Explorer Key Mapping
vim.keymap.set('n', '<M-E>', toggle_nvimtree, {})
-- Save and close a buffer ending up on the previous
-- buffer or in a new buffer
vim.keymap.set('n', '<M-W>', ":w<bar>:bp<bar>sp<bar>bn<bar>bd<cr>", { desc = 'Close buffer' })
vim.keymap.set('i', '<M-W>', "<ESC>:w<bar>:bp<bar>sp<bar>bn<bar>bd<cr>", { desc = 'Close buffer' })
-- Save and quit out of neovim including closing
-- nvim-tree
vim.keymap.set('n', '<M-Q>', ":wqa<cr>:bd<cr>", { desc = 'Save and quit' })
vim.keymap.set('i', '<M-Q>', "<ESC>:wqa<cr>:bd<cr>", { desc = 'Save and quit' })
- Help via : [TODO: Code shorthand span ]
- This set up turns off the git icons in the tree. I find them more distracting that useful
Default Key Mappings
These are the default key mappings you can pull it for easy reference :
Footnotes And References
- •
- •