Switch to oil.nvim and drop netrw

This commit is contained in:
Kenneth Benzie 2025-09-14 20:32:28 +01:00
parent 745f6c408b
commit 3d736dca8a
2 changed files with 29 additions and 40 deletions

29
lua/plugins/oil.lua Normal file
View File

@ -0,0 +1,29 @@
return {
'stevearc/oil.nvim',
dependencies = {
"nvim-tree/nvim-web-devicons",
},
lazy = false,
config = function()
require('oil').setup({
keymaps = {
["g?"] = { "actions.show_help", mode = "n" },
["<CR>"] = "actions.select",
["<leader>l"] = "actions.refresh",
["-"] = { "actions.parent", mode = "n" },
["_"] = { "actions.open_cwd", mode = "n" },
["`"] = { "actions.cd", mode = "n" },
["~"] = { "actions.cd", opts = { scope = "tab" }, mode = "n" },
["gs"] = { "actions.change_sort", mode = "n" },
["gx"] = "actions.open_external",
["g."] = { "actions.toggle_hidden", mode = "n" },
["g\\"] = { "actions.toggle_trash", mode = "n" },
},
use_default_keymaps = false,
})
vim.keymap.set("n", "-", function()
local dir = vim.fn.expand("%:h")
vim.cmd.Oil(dir ~= "" and dir or ".")
end, {})
end
}

View File

@ -1,40 +0,0 @@
-- Disable banner
vim.g.netrw_banner = 0
-- Fix gx when running inside WSL
if vim.env.WSLENV then
vim.g.netrw_browsex_viewer = 'cmd.exe /C start'
end
-- Sort files in a sensible sequence
vim.g.netrw_sort_sequence = '[\\/]$,*'
-- Map - key to open netrw in current files parent directory
vim.keymap.set('n', '-', function()
-- Get the filename before invoking netrw
local filename = vim.fn.expand('%:t')
local directory = vim.fn.expand('%:hp')
if directory == '' then
directory = vim.fn.getcwd()
end
-- Invoke netrw on the directory containing the current file
vim.fn.execute(string.format("edit %s", directory))
if filename ~= '' then
-- In the netrw buffer, move the cursor to the first character of filename
vim.fn.search('\\<' .. filename .. '\\>')
end
end)
-- Unmap <C-l> in netrw buffers so it can be used for natigation
vim.api.nvim_create_autocmd('FileType', {
pattern = 'netrw',
group = vim.api.nvim_create_augroup('netrw_unmap', {}),
callback = function()
local buffer = vim.api.nvim_get_current_buf()
if vim.fn.hasmapto('<Plug>NetrwRefresh') == 1 then
vim.keymap.del('n', '<C-l>', { buffer = buffer })
end
end
})