-- Smart buffer delete function (for ) local function smart_buffer_delete() local buffers = vim.fn.getbufinfo { buflisted = 1 } local listed_buffers = {} -- Count only listed buffers (exclude help, quickfix, etc.) for _, buf in ipairs(buffers) do if buf.listed == 1 then table.insert(listed_buffers, buf) end end -- If this is the last buffer, quit Neovim if #listed_buffers <= 1 then vim.cmd 'quit' else vim.cmd 'bdelete' end end -- "Tab Navigation vim.keymap.set('n', '', ':tabnew', { desc = 'New Tab', noremap = true, silent = true, }) vim.keymap.set('n', 'tn', ':-1tabnew', { desc = 'New Tab To The Left', noremap = true, silent = true, }) vim.keymap.set('n', '', ':tabnext', { desc = 'Next Tab', noremap = true, silent = true, }) vim.keymap.set('n', '', ':tabprevious', { desc = 'Previous Tab', noremap = true, silent = true, }) vim.keymap.set('n', '', ':tabclose', { desc = 'Close Tab', noremap = true, silent = true, }) -- Window splitting vim.keymap.set('n', 'sv', ':vsplit', { desc = '[S]plit [V]ertical', noremap = true, silent = true, }) vim.keymap.set('n', 'sh', ':split', { desc = '[S]plit [H]orizontal', noremap = true, silent = true, }) vim.keymap.set('n', 'sq', 'q', { desc = '[S]plit [Q]uit Window', noremap = true, silent = true, }) -- nerdtree vim.keymap.set('n', '', ':Neotree toggle', { desc = 'Toggle File Explorer', noremap = true, silent = true, }) vim.keymap.set('i', '', ':Neotree toggle', { desc = 'Toggle File Explorer', noremap = true, silent = true, }) return {}