local status_ok, toggleterm = pcall(require, "toggleterm") if not status_ok then return end toggleterm.setup { size = 20, open_mapping = [[]], hide_numbers = true, shade_filetypes = {}, 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", winblend = 0, highlights = { border = "Normal", background = "Normal", }, }, } local Terminal = require("toggleterm.terminal").Terminal local htop = Terminal:new { cmd = "htop", hidden = true } function _HTOP_TOGGLE() htop:toggle() end local dotnet_run = Terminal:new { cmd = "dotnet run", hidden = false } function _DOTNET_RUN_TOGGLE() dotnet_run:toggle() end local float_term = Terminal:new { direction = "float", on_open = function(term) vim.cmd "startinsert!" vim.api.nvim_buf_set_keymap( term.bufnr, "n", "", "1ToggleTerm direction=float", { noremap = true, silent = true } ) vim.api.nvim_buf_set_keymap( term.bufnr, "t", "", "1ToggleTerm direction=float", { noremap = true, silent = true } ) vim.api.nvim_buf_set_keymap( term.bufnr, "i", "", "1ToggleTerm direction=float", { noremap = true, silent = true } ) vim.api.nvim_buf_set_keymap(term.bufnr, "", "", "", { noremap = true, silent = true }) vim.api.nvim_buf_set_keymap(term.bufnr, "", "", "", { noremap = true, silent = true }) end, count = 1, } function _FLOAT_TERM() float_term:toggle() end vim.api.nvim_set_keymap("n", "", "lua _FLOAT_TERM()", { noremap = true, silent = true }) vim.api.nvim_set_keymap("i", "", "lua _FLOAT_TERM()", { noremap = true, silent = true }) local horizontal_term = Terminal:new { direction = "horizontal", on_open = function(term) vim.cmd "startinsert!" vim.api.nvim_buf_set_keymap( term.bufnr, "n", "", "3ToggleTerm size=10 direction=horizontal", { noremap = true, silent = true } ) vim.api.nvim_buf_set_keymap( term.bufnr, "t", "", "3ToggleTerm size=10 direction=horizontal", { noremap = true, silent = true } ) vim.api.nvim_buf_set_keymap( term.bufnr, "i", "", "3ToggleTerm size=10 direction=horizontal", { noremap = true, silent = true } ) vim.api.nvim_buf_set_keymap(term.bufnr, "", "", "", { noremap = true, silent = true }) end, count = 3, } function _HORIZONTAL_TERM() horizontal_term:toggle(10) end vim.api.nvim_set_keymap("n", "", "lua _HORIZONTAL_TERM()", { noremap = true, silent = true }) vim.api.nvim_set_keymap("i", "", "lua _HORIZONTAL_TERM()", { noremap = true, silent = true })