nvim/lua/user/terminal.lua
2025-01-15 23:20:30 +05:30

26 lines
748 B
Lua

-- Define the ToggleTerm function globally
function _G.ToggleTerm()
-- Check if there is a terminal buffer open
local term_buf = nil
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
if vim.api.nvim_buf_get_option(buf, "buftype") == "terminal" then
term_buf = buf
break
end
end
if term_buf then
-- If terminal buffer is open, find its window
local term_win = vim.fn.bufwinnr(term_buf)
if term_win ~= -1 then
-- If terminal window is open, close it
vim.cmd(term_win .. "close")
else
-- If terminal buffer exists but window is not open, open it in a split
vim.cmd("belowright split | buffer " .. term_buf)
end
else
-- No terminal buffer found, open a new one
vim.cmd("belowright split | terminal")
end
end