fix: Fix oil manager to not create a :oil dir

Fixed oil.nvim and also changed and added some keybinds for easier use
of yanking, deleting and all the lsp related things like "g<letter>"
This commit is contained in:
Gustavo 2025-08-21 11:04:18 +02:00
parent 02aeedc67d
commit 2ecb05585d
2 changed files with 36 additions and 21 deletions

View File

@ -125,6 +125,11 @@ end)
-- [[ Basic Keymaps ]] -- [[ Basic Keymaps ]]
vim.keymap.set('n', '<leader>Ss', '<cmd>SessionSave<CR>', { desc = 'Save session' })
vim.keymap.set('n', '<leader>Sl', '<cmd>SessionLoad<CR>', { desc = 'Load session' })
vim.keymap.set('n', '<C-s>', '<cmd>w<CR>', { desc = 'Save file' })
-- Clear highlights on search when pressing <Esc> in normal mode -- Clear highlights on search when pressing <Esc> in normal mode
vim.keymap.set('n', '<C-c>', '<cmd>nohlsearch<CR>', { desc = 'Clear search highlights' }) vim.keymap.set('n', '<C-c>', '<cmd>nohlsearch<CR>', { desc = 'Clear search highlights' })
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>', { desc = 'Clear search highlights' }) vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>', { desc = 'Clear search highlights' })
@ -171,7 +176,10 @@ vim.keymap.set('n', '<C-d>', '<C-d>zz', { desc = 'Half page down (centered)' })
vim.keymap.set('n', '<C-u>', '<C-u>zz', { desc = 'Half page up (centered)' }) vim.keymap.set('n', '<C-u>', '<C-u>zz', { desc = 'Half page up (centered)' })
-- Delete without yanking -- Delete without yanking
vim.keymap.set({ 'n', 'v' }, '<leader>d', '"_d', { desc = 'Delete without yanking' }) vim.keymap.set({ 'n', 'v' }, 'D', '"_d', { desc = 'Delete without yanking' })
-- Paste without yanking
vim.keymap.set('x', 'p', [["_dP]], { desc = 'Paste without yanking' })
-- Buffer navigation -- Buffer navigation
vim.keymap.set('n', '<leader>bn', '<cmd>bnext<CR>', { desc = 'Next buffer' }) vim.keymap.set('n', '<leader>bn', '<cmd>bnext<CR>', { desc = 'Next buffer' })
@ -195,7 +203,7 @@ vim.keymap.set('n', 'J', 'mzJ`z', { desc = 'Join lines and keep cursor position'
-- ============================================================================ -- ============================================================================
-- Copy Full File-Path -- Copy Full File-Path
vim.keymap.set('n', '<leader>ypa', function() vim.keymap.set('n', '<leader>yp', function()
local path = vim.fn.expand '%:p' local path = vim.fn.expand '%:p'
vim.fn.setreg('+', path) vim.fn.setreg('+', path)
print('file:', path) print('file:', path)
@ -237,7 +245,7 @@ vim.api.nvim_create_autocmd('FileType', {
vim.api.nvim_create_autocmd('FileType', { vim.api.nvim_create_autocmd('FileType', {
group = augroup, group = augroup,
pattern = { 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 'json', 'html', 'css' }, pattern = { 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 'json', 'html', 'css', 'go' },
callback = function() callback = function()
vim.opt_local.tabstop = 2 vim.opt_local.tabstop = 2
vim.opt_local.shiftwidth = 2 vim.opt_local.shiftwidth = 2
@ -274,11 +282,13 @@ vim.api.nvim_create_autocmd('VimResized', {
-- Create directories when saving files -- Create directories when saving files
vim.api.nvim_create_autocmd('BufWritePre', { vim.api.nvim_create_autocmd('BufWritePre', {
group = augroup,
callback = function() callback = function()
local dir = vim.fn.expand '<afile>:p:h' local filepath = vim.fn.expand '<afile>:p:h'
if vim.fn.isdirectory(dir) == 0 then if filepath:match '^oil://' or vim.uv.fs_realpath(filepath) == nil then
vim.fn.mkdir(dir, 'p') return
end
if vim.fn.isdirectory(filepath) == 0 then
vim.fn.mkdir(filepath, 'p')
end end
end, end,
}) })
@ -468,17 +478,7 @@ vim.keymap.set('n', '<leader>td', duplicate_tab, { desc = 'Duplicate current tab
vim.keymap.set('n', '<leader>tr', close_tabs_right, { desc = 'Close tabs to the right' }) vim.keymap.set('n', '<leader>tr', close_tabs_right, { desc = 'Close tabs to the right' })
vim.keymap.set('n', '<leader>tL', close_tabs_left, { desc = 'Close tabs to the left' }) vim.keymap.set('n', '<leader>tL', close_tabs_left, { desc = 'Close tabs to the left' })
-- Function to close buffer but keep tab if it's the only buffer in tab vim.keymap.set('n', '<leader>x', '<cmd>q<CR>', { desc = 'Smart close buffer/tab' })
local function smart_close_buffer()
local buffers_in_tab = #vim.fn.tabpagebuflist()
if buffers_in_tab > 1 then
vim.cmd 'bdelete'
else
-- If it's the only buffer in tab, close the tab
vim.cmd 'tabclose'
end
end
vim.keymap.set('n', '<leader>x', smart_close_buffer, { desc = 'Smart close buffer/tab' })
-- [[ Install `lazy.nvim` plugin manager ]] -- [[ Install `lazy.nvim` plugin manager ]]
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info -- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info

View File

@ -8,7 +8,7 @@ return {
local oil = require 'oil' local oil = require 'oil'
oil.setup { oil.setup {
default_file_explorer = true, -- default_file_explorer = true,
delete_to_trash = true, delete_to_trash = true,
skip_confirm_for_simple_edits = true, skip_confirm_for_simple_edits = true,
@ -19,13 +19,15 @@ return {
['<C-Space>'] = { 'actions.select' }, ['<C-Space>'] = { 'actions.select' },
['<C-l>'] = { 'actions.select' }, ['<C-l>'] = { 'actions.select' },
['<C-h>'] = { 'actions.parent' }, ['<C-h>'] = { 'actions.parent' },
['<M-h>'] = { 'actions.select_split' },
['<C-c>'] = { 'actions.close', mode = 'n' }, ['<C-c>'] = { 'actions.close', mode = 'n' },
['<Esc>'] = { 'actions.close', mode = 'n' }, ['<Esc>'] = { 'actions.close', mode = 'n' },
['<M-v>'] = { 'actions.select', opts = { vertical = true } },
['<M-h>'] = { 'actions.select', opts = { horizontal = true } },
['<M-t>'] = { 'actions.select', opts = { tab = true } },
}, },
view_options = { view_options = {
show_hidden = true, show_hidden = true,
natural_order = true, natural_order = 'fast',
is_always_hidden = function(name, _) is_always_hidden = function(name, _)
return name == '..' or name == '.git' return name == '..' or name == '.git'
end, end,
@ -34,6 +36,19 @@ return {
signcolumn = 'yes:2', signcolumn = 'yes:2',
wrap = true, wrap = true,
}, },
preview_win = {
disable_preview = function(filename)
return filename:match '^%.'
end,
},
sort = {
{ 'name', 'asc' },
},
buf_options = {
buflisted = false,
bufhidden = 'delete', -- Delete the buffer immediately when hidden
},
cleanup_delay_ms = 0, -- Or set to false to disable auto-cleanup entirely if you prefer
} }
vim.keymap.set('n', '-', oil.toggle_float, { desc = 'Open parent directory' }) vim.keymap.set('n', '-', oil.toggle_float, { desc = 'Open parent directory' })