return { 'akinsho/toggleterm.nvim', config = function() function _G.set_terminal_keymaps(term) local opts = { noremap = true } if (term.cmd ~= 'lazygit') then vim.api.nvim_buf_set_keymap(term.bufnr, 't', '', [[]], opts) end vim.api.nvim_buf_set_keymap(term.bufnr, 't', 'jk', [[]], opts) vim.api.nvim_buf_set_keymap(term.bufnr, 't', '', [[h]], opts) vim.api.nvim_buf_set_keymap(term.bufnr, 't', '', [[j]], opts) vim.api.nvim_buf_set_keymap(term.bufnr, 't', '', [[k]], opts) vim.api.nvim_buf_set_keymap(term.bufnr, 't', '', [[l]], opts) end require('toggleterm').setup({ on_open = set_terminal_keymaps }) local Terminal = require('toggleterm.terminal').Terminal local lazygit = Terminal:new({ cmd = 'lazygit', -- dir = vim.fn.getcwd(), hidden = true, direction = 'float', on_open = function(term) vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) -- vim.api.nvim_buf_set_keymap(term.bufnr, 't', '', '', {noremap = true, silent = true}) end, }) function _lazygit_toggle() lazygit:toggle() end end, cmd = 'ToggleTerm', keys = { { 'g', function() _lazygit_toggle() end, desc= 'Open lazygit', } } }