feat: add keybinds

This commit is contained in:
Ian
2026-06-29 23:13:19 +02:00
parent e5a784734d
commit 04193635e9
3 changed files with 13 additions and 13 deletions
+51
View File
@@ -0,0 +1,51 @@
local function count_buffers()
local buff_list = vim.api.nvim_exec('ls', true)
local t = {}
local count = 0
for v in buff_list.gmatch(buff_list, "[^\n]+") do
count = count + 1
end
return count
end
local function count_windows_and_position()
local win_n = vim.api.nvim_list_wins()
local current_win = vim.api.nvim_get_current_win()
local total_win = 0
local pos = 0
for k, v in pairs(win_n) do
total_win = total_win + 1
if v == current_win then
pos = k
end
end
return total_win, pos
end
local function close_open_buff()
local count = count_buffers()
local total_win, pos = count_windows_and_position()
vim.api.nvim_command("bd")
if total_win ~= 1 and count > 2 then
vim.api.nvim_command("vs")
vim.api.nvim_command("bn")
if pos == 1 then
vim.api.nvim_exec("wincmd r", false)
end
elseif count == 2 then
print(" > Last buffer")
elseif count == 1 then
print(" > No more buffer to close!")
end
end
return {
close_open_buff = close_open_buff
}
+55
View File
@@ -0,0 +1,55 @@
vim.api.nvim_create_user_command('W', "update", { nargs='?'})
local bind = vim.keymap.set
vim.g.mapleader = ","
bind('n', '<leader>v', '<cmd>vsp<cr><C-w>l', { desc = 'Vertical split' })
--bind('n', '<leader>e', '<cmd>e .<cr><cmd>set relativenumber<cr>', { desc = 'Netrw file manager' })
-- Buffer navigation
bind('n', '<M-l>', '<cmd>bp<cr>', { desc = 'Buffer previous' })
bind('n', '<M-h>', '<cmd>bn<cr>', { desc = 'Buffer next' })
bind('n', '<M-Down>', '<cmd>CloseOpenBuff<cr>', { desc = 'Buffer close' })
-- Buffer resize
bind('n', '<leader>+', '<cmd>vertical resize +5<cr>', { desc = 'Buffer increase size' })
bind('n', '<leader>-', '<cmd>vertical resize -5<cr>', { desc = 'Buffer decrease size' })
-- Tab movements
bind('n', '<C-M-n>', '<cmd>tabnew<cr>', { desc = 'New tab' })
bind('n', '<C-M-Down>', '<cmd>tabclose<cr>', { desc = 'Close tab' })
bind('n', '<C-M-l>', '<cmd>tabnext<cr>', { desc = 'Next tab' })
bind('n', '<C-M-h>', '<cmd>tabprevious<cr>', { desc = 'Previous tab' })
-- Movements into buffer
bind('n', "<C-d>", "<C-d>zz", { desc = 'Center cursor after page down' })
bind('n', "<C-u>", "<C-u>zz", { desc = 'Center cursor after page up' })
-- Move lines in visual mode
bind('v', 'K', ":m '<-2<cr>gv=gv", { desc = 'Move highlighted lines up' })
bind('v', 'J', ":m '>+1<cr>gv=gv", { desc = 'Move highlighted lines down' })
-- Text cleaning
bind('n', '<leader>w', '<cmd>%s/\\s\\+$/<cr><cmd>nohlsearch<cr>', { desc = 'Delete white spaces at end of each line' })
-- Quick fix list
bind('n', '<leader>cc', '<cmd>cclose<cr>')
bind('n', '<leader>co', '<cmd>copen<cr>')
-- Telescope
-- bind('n', '<leader>ff', '<cmd>Telescope find_files<cr>')
-- bind('n', '<leader>fg', '<cmd>Telescope live_grep<cr>')
-- bind('n', '<leader>fg', require("telescope").extensions.live_grep_args.live_grep_args, { noremap = true })
-- bind('n', '<leader>fb', '<cmd>Telescope buffers<cr>')
-- bind('n', '<leader>fh', '<cmd>Telescope help_tags<cr>')
-- Testing funcs
-- vim.api.nvim_create_user_command('MyFuncs', require('my_funcs').reopen, { nargs='?'})
-- bind('n', '<leader>r', '<cmd>MyFuncs<cr>')
-- vim.api.nvim_create_user_command('MyFuncsPP', require('my_funcs').print_path, { nargs='?'})
-- bind('n', '<leader>pp', '<cmd>MyFuncsPP<cr>')
-- bind({'n', 'i'}, '<C-w>', '<cmd>w<cr>', { desc = 'Save with CTRL+s' })