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:
parent
02aeedc67d
commit
2ecb05585d
36
init.lua
36
init.lua
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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' })
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue