feat: add terminal QoL stuff, keymaps & autocmd.

This commit is contained in:
Abdulrahman Sheikho 2026-04-25 14:14:34 +03:00
parent dbdbd789f3
commit 3419c4bd27
3 changed files with 37 additions and 0 deletions

View File

@ -20,3 +20,13 @@ vim.api.nvim_create_autocmd('ColorScheme', {
vim.api.nvim_set_hl(0, 'EndOfBuffer', vim.api.nvim_get_hl(0, { name = 'CursorLineNr' }))
end,
})
vim.api.nvim_create_autocmd('TermOpen', {
desc = 'Rename terminal buffer',
group = vim.api.nvim_create_augroup('RenameTerminalBufer', { clear = true }),
callback = function(ev)
local pid, cmd = ev.file:match '//(%d-:)(.+)'
cmd = vim.fs.basename(cmd)
vim.api.nvim_buf_set_name(ev.buf, 'term://' .. pid .. cmd)
end,
})

View File

@ -55,6 +55,32 @@ vim.keymap.set('n', '<leader>y', '<cmd>%y<CR>', { desc = '[y]ank buffer' })
vim.keymap.set('n', '<leader>q', '<cmd>q<CR>', { desc = '[q]uit buffer' })
vim.keymap.set('n', '<leader>c', '<cmd>bdelete<CR>', { desc = '[c]lose file' })
-- terminal keymaps
vim.keymap.set('n', '<leader>;;', function()
vim.cmd.term()
end, { desc = 'New termianl proc - current buf' })
vim.keymap.set('n', '<leader>;s', function()
vim.cmd.new() -- or vim.cmd.vnew(); vim.cmd.wincmd 'J'
vim.cmd.term()
vim.api.nvim_win_set_height(0, 10)
end, { desc = 'New termianl proc - horizontal' })
vim.keymap.set('n', '<leader>;v', function()
vim.cmd.vnew()
vim.cmd.term()
end, { desc = 'New termianl proc - vertical' })
vim.keymap.set('n', '<leader>;t', function()
vim.cmd.tabnew()
vim.cmd.term()
end, { desc = 'New termianl proc - tab' })
vim.keymap.set('n', '<leader>;o', function()
vim.cmd.tabnew()
vim.cmd.term 'opencode'
end, { desc = 'New opencode proc' })
vim.keymap.set('n', '<leader>;l', function()
vim.cmd.tabnew()
vim.cmd.term 'lazygit'
end, { desc = 'New lazygit proc' })
-- Add a keymap for delete while on insert-mode
-- this works well with <C-h>, <C-w>, <C-u>
vim.keymap.set('i', '<C-f>', '<Del>')

View File

@ -27,6 +27,7 @@ return {
{ '<leader>l', group = '[L]SP', mode = { 'n', 'v' } },
{ '<leader>t', group = '[T]oggle' },
{ '<leader>d', group = '[D]iagnostic' },
{ '<leader>;', group = '[;]terminal' },
{ 'ao', group = 'TS text[O]bject', mode = { 'v', 'o' } },
{ 'io', group = 'TS text[O]bject', mode = { 'v', 'o' } },
{ '[o', group = 'TS text[O]bject', mode = { 'n', 'v', 'o' } },