feat(nvim/oil): A keymap to recursively open directories
Because oil.nvim don't group empty directories. REF: https://github.com/stevearc/oil.nvim/issues/346 REF: https://github.com/stevearc/oil.nvim/pull/452
This commit is contained in:
parent
248b4abcfa
commit
b39c708cde
1 changed files with 58 additions and 33 deletions
|
@ -1,35 +1,60 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"nvim-neo-tree/neo-tree.nvim", -- I'll be using oil.nvim, but for better visual I'll keep this
|
"nvim-neo-tree/neo-tree.nvim", -- I'll be using oil.nvim, but for better visual I'll keep this
|
||||||
keys = {
|
keys = {
|
||||||
{ "<C-n>", "<cmd>Neotree toggle<cr>", desc = "NeoTree" },
|
{ "<C-n>", "<cmd>Neotree toggle<cr>", desc = "NeoTree" },
|
||||||
},
|
},
|
||||||
branch = "v3.x",
|
branch = "v3.x",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"nvim-lua/plenary.nvim",
|
"nvim-lua/plenary.nvim",
|
||||||
"nvim-tree/nvim-web-devicons",
|
"nvim-tree/nvim-web-devicons",
|
||||||
"MunifTanjim/nui.nvim",
|
"MunifTanjim/nui.nvim",
|
||||||
},
|
},
|
||||||
config = function ()
|
config = function()
|
||||||
require("neo-tree").setup({
|
require("neo-tree").setup({
|
||||||
close_if_last_window = true,
|
close_if_last_window = true,
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"stevearc/oil.nvim",
|
"stevearc/oil.nvim",
|
||||||
lazy = false,
|
lazy = false,
|
||||||
keys = {
|
keys = {
|
||||||
{ "-", "<cmd>Oil<cr>", desc = "Oil" },
|
{ "-", "<cmd>Oil<cr>", desc = "Oil" },
|
||||||
},
|
},
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
config = function ()
|
config = function()
|
||||||
require("oil").setup({
|
require("oil").setup({
|
||||||
default_file_explorer = true,
|
default_file_explorer = true,
|
||||||
keymaps = {
|
keymaps = {
|
||||||
["q"] = "actions.close",
|
["q"] = "actions.close",
|
||||||
},
|
["<A-CR>"] = {
|
||||||
})
|
desc = "Recursively Open directores",
|
||||||
end
|
callback = function()
|
||||||
},
|
local oil = require("oil")
|
||||||
|
local dir = oil.get_current_dir()
|
||||||
|
local cursor = oil.get_cursor_entry()
|
||||||
|
|
||||||
|
local function o()
|
||||||
|
oil.open(dir .. cursor.name)
|
||||||
|
vim.wait(50)
|
||||||
|
|
||||||
|
dir = oil.get_current_dir()
|
||||||
|
cursor = oil.get_cursor_entry()
|
||||||
|
|
||||||
|
local bn = vim.fn.bufnr()
|
||||||
|
local lines = vim.api.nvim_buf_line_count(bn)
|
||||||
|
|
||||||
|
if lines == 1 and cursor ~= nil and cursor.type == "directory" then
|
||||||
|
o()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
o()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue