diff options
Diffstat (limited to 'nvim/lua/user/toggleterm.lua')
-rw-r--r-- | nvim/lua/user/toggleterm.lua | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/nvim/lua/user/toggleterm.lua b/nvim/lua/user/toggleterm.lua new file mode 100644 index 0000000..512d97b --- /dev/null +++ b/nvim/lua/user/toggleterm.lua @@ -0,0 +1,49 @@ +local M = { + "akinsho/toggleterm.nvim", + commit = "19aad0f41f47affbba1274f05e3c067e6d718e1e", + event = "VeryLazy", +} + +function M.config() + local status_ok, toggleterm = pcall(require, "toggleterm") + if not status_ok then + return + end + + toggleterm.setup { + size = 20, + open_mapping = [[<c-\>]], + hide_numbers = true, + shade_terminals = true, + shading_factor = 2, + start_in_insert = true, + insert_mappings = true, + persist_size = true, + direction = "float", + close_on_exit = true, + shell = vim.o.shell, + float_opts = { + border = "curved", + }, + } + + function _G.set_terminal_keymaps() + local opts = { noremap = true } + -- vim.api.nvim_buf_set_keymap(0, 't', '<esc>', [[<C-\><C-n>]], opts) + vim.api.nvim_buf_set_keymap(0, "t", "<C-h>", [[<C-\><C-n><C-W>h]], opts) + vim.api.nvim_buf_set_keymap(0, "t", "<C-j>", [[<C-\><C-n><C-W>j]], opts) + vim.api.nvim_buf_set_keymap(0, "t", "<C-k>", [[<C-\><C-n><C-W>k]], opts) + vim.api.nvim_buf_set_keymap(0, "t", "<C-l>", [[<C-\><C-n><C-W>l]], opts) + end + + vim.cmd "autocmd! TermOpen term://* lua set_terminal_keymaps()" + + local Terminal = require("toggleterm.terminal").Terminal + local lazygit = Terminal:new { cmd = "lazygit", hidden = true } + + function _LAZYGIT_TOGGLE() + lazygit:toggle() + end +end + +return M |