summaryrefslogtreecommitdiffstats
path: root/nvim/lua/user/toggleterm.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/user/toggleterm.lua')
-rw-r--r--nvim/lua/user/toggleterm.lua49
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