Switch to oil.nvim and drop netrw
This commit is contained in:
parent
745f6c408b
commit
3d736dca8a
29
lua/plugins/oil.lua
Normal file
29
lua/plugins/oil.lua
Normal 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
|
||||||
|
}
|
@ -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
|
|
||||||
})
|
|
Loading…
x
Reference in New Issue
Block a user