aboutsummaryrefslogtreecommitdiffstats
path: root/nvim/lua/plugins/oil.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/plugins/oil.lua')
-rw-r--r--nvim/lua/plugins/oil.lua16
1 files changed, 11 insertions, 5 deletions
diff --git a/nvim/lua/plugins/oil.lua b/nvim/lua/plugins/oil.lua
index 890e05d..0c0a2c3 100644
--- a/nvim/lua/plugins/oil.lua
+++ b/nvim/lua/plugins/oil.lua
@@ -1,3 +1,4 @@
+local oil_winnr = nil
return {
'stevearc/oil.nvim',
lazy = false,
@@ -8,13 +9,18 @@ return {
keys = { {
"<leader>ef",
function()
- local filetype = vim.o.ft
- if filetype == "oil" then
- vim.cmd('q')
+ if not oil_winnr or not vim.api.nvim_win_is_valid(oil_winnr) then
+ vim.cmd("topleft vsplit +Oil")
+ oil_winnr = vim.api.nvim_get_current_win()
+ return
+ end
+
+ if vim.api.nvim_get_current_win() == oil_winnr then
+ vim.api.nvim_win_close(oil_winnr, false)
+ oil_winnr = nil
else
- vim.cmd('topleft vsplit +Oil')
+ vim.api.nvim_set_current_win(oil_winnr)
end
- -- TODO: check for other open oil instances
end,
desc = "Open Oil file explorer in a far left split, similar to :Lexplore"
} },