Update README and keymaps for netrw navigation

Add command variants for netrw and update keymaps to improve
navigation experience. Store initial working directory as
project root for better symlink handling.
This commit is contained in:
Ray Elliott 2026-01-12 15:18:10 +00:00
commit d876425956
3 changed files with 29 additions and 8 deletions

View file

@ -40,17 +40,22 @@ vim.g.netrw_sizestyle = 'H'
-- Netrw file explorer keymaps
-- Open netrw in new tab at current file's directory
map('n', '<leader>te', function()
map('n', '<leader>nt', function()
local current_file_dir = vim.fn.expand('%:p:h')
vim.cmd('tabnew')
vim.cmd('Explore ' .. vim.fn.fnameescape(current_file_dir))
end, { desc = 'Netrw: Tab explore (current file dir)', silent = true })
end, { desc = 'Netrw: Tab at current file dir', silent = true })
-- Open netrw in new tab at project root (cwd)
map('n', '<leader>tE', function()
-- Open netrw in new tab at project root (stored at startup)
map('n', '<leader>nT', function()
vim.cmd('tabnew')
vim.cmd('Explore ' .. vim.fn.fnameescape(vim.fn.getcwd()))
end, { desc = 'Netrw: Tab explore (project root)', silent = true })
vim.cmd('Explore ' .. vim.fn.fnameescape(vim.g.project_root))
end, { desc = 'Netrw: Tab at project root', silent = true })
-- Open netrw in current window at project root (stored at startup)
map('n', '<leader>nr', function()
vim.cmd('Explore ' .. vim.fn.fnameescape(vim.g.project_root))
end, { desc = 'Netrw: Open at project root', silent = true })
-- Enable line numbers in netrw buffers
vim.api.nvim_create_autocmd('FileType', {
pattern = 'netrw',

View file

@ -5,6 +5,10 @@ vim.g.loaded_ruby_provider = 0
vim.g.loaded_perl_provider = 0
vim.g.loaded_node_provider = 0
-- Store initial working directory as project root
-- Used by netrw navigation to return to project root after following symlinks
vim.g.project_root = vim.fn.getcwd()
-- Enable project-local configuration files
vim.opt.exrc = true -- Load .nvim.lua from project root
vim.opt.secure = true -- Prompt before loading untrusted files