From 3419c4bd27832aba70a56c7d7d69d7dbe90a0044 Mon Sep 17 00:00:00 2001 From: Abdulrahman Sheikho Date: Sat, 25 Apr 2026 14:14:34 +0300 Subject: [PATCH] feat: add terminal QoL stuff, keymaps & autocmd. --- lua/core/autocommands.lua | 10 ++++++++++ lua/core/keymaps.lua | 26 ++++++++++++++++++++++++++ lua/plugins/which-key.lua | 1 + 3 files changed, 37 insertions(+) diff --git a/lua/core/autocommands.lua b/lua/core/autocommands.lua index 3f53bb53..13689c78 100644 --- a/lua/core/autocommands.lua +++ b/lua/core/autocommands.lua @@ -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, +}) diff --git a/lua/core/keymaps.lua b/lua/core/keymaps.lua index 05a76ee0..8953f157 100644 --- a/lua/core/keymaps.lua +++ b/lua/core/keymaps.lua @@ -55,6 +55,32 @@ vim.keymap.set('n', 'y', '%y', { desc = '[y]ank buffer' }) vim.keymap.set('n', 'q', 'q', { desc = '[q]uit buffer' }) vim.keymap.set('n', 'c', 'bdelete', { desc = '[c]lose file' }) +-- terminal keymaps +vim.keymap.set('n', ';;', function() + vim.cmd.term() +end, { desc = 'New termianl proc - current buf' }) +vim.keymap.set('n', ';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', ';v', function() + vim.cmd.vnew() + vim.cmd.term() +end, { desc = 'New termianl proc - vertical' }) +vim.keymap.set('n', ';t', function() + vim.cmd.tabnew() + vim.cmd.term() +end, { desc = 'New termianl proc - tab' }) +vim.keymap.set('n', ';o', function() + vim.cmd.tabnew() + vim.cmd.term 'opencode' +end, { desc = 'New opencode proc' }) +vim.keymap.set('n', ';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 , , vim.keymap.set('i', '', '') diff --git a/lua/plugins/which-key.lua b/lua/plugins/which-key.lua index 24b24c6b..50721e2d 100644 --- a/lua/plugins/which-key.lua +++ b/lua/plugins/which-key.lua @@ -27,6 +27,7 @@ return { { 'l', group = '[L]SP', mode = { 'n', 'v' } }, { 't', group = '[T]oggle' }, { 'd', group = '[D]iagnostic' }, + { ';', 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' } },