| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- return {
- {
- "voldikss/vim-floaterm",
- enabled = true,
- lazy = false,
- config = function()
- -- Floaterm config
- vim.g.floaterm_autoinsert = true
- vim.g.floaterm_autohide = 2
- vim.g.floaterm_autoclose = 1
- vim.g.floaterm_borderchars = "-¦-¦⌌⌍⌏⌎"
- vim.g.floaterm_opener = "vsplit"
- -- Config for interacting with terminals
- vim.g.floaterm_lastused = ""
- local term_group = vim.api.nvim_create_augroup("terminal",
- { clear = true })
- local terminal_callback = function()
- vim.wo.colorcolumn = tostring(-1)
- vim.opt.stc = ""
- vim.b.number = false
- vim.b.relativenumber = false
- vim.b.winfixwidth = false
- end
- vim.api.nvim_create_autocmd({ "TermOpen" }, {
- pattern = { "*" },
- group = term_group,
- callback = terminal_callback
- })
- vim.api.nvim_create_autocmd({ "BufWinEnter", "WinEnter" }, {
- pattern = { "term://*" },
- group = term_group,
- callback = function()
- terminal_callback();
- vim.cmd(":startinsert");
- end
- })
- vim.api.nvim_create_autocmd({ "BufEnter" }, {
- pattern = { "*" },
- group = term_group,
- callback = function()
- vim.defer_fn(function()
- vim.schedule(function()
- if (vim.bo.filetype ~= "floaterm") then
- vim.cmd(":FloatermHide " ..
- vim.g.floaterm_lastused)
- end
- end)
- end, 100)
- end
- })
- -- Configure eight homerow terminals
- function MakeTerm(shortcut, name, command, options)
- vim.cmd(":nnoremap " .. shortcut ..
- " :lua vim.g.floaterm_lastused='" .. name ..
- "'; vim.api.nvim_exec2(\"FloatermShow " .. name ..
- "\", {})<CR>")
- vim.cmd(":FloatermNew --name=" .. name .. " --title=" .. name ..
- " --silent --titleposition=left " .. options ..
- " /bin/zsh -c \"while true; do; " .. command ..
- "; done;\"")
- end
- MakeTerm("stt", "Alpha", "clear; zsh", "--width=1.0 --height=0.99")
- MakeTerm("sts", "Beta", "clear; zsh", "--width=1.0 --height=0.99")
- MakeTerm("str", "Gamma", "clear; zsh", "--width=1.0 --height=0.99")
- MakeTerm("sta", "Delta", "clear; zsh", "--width=1.0 --height=0.99")
- MakeTerm("stn", "Epsilon", "clear; zsh", "--width=80 --height=40")
- MakeTerm("ste", "Zeta", "clear; zsh", "--width=80 --height=40")
- MakeTerm("sti", "Eta", "lazydocker", "--width=2.0 --height=2.0")
- MakeTerm("sto", "Theta", "lazygit", "--width=2.0 --height=2.0")
- -- Keymaps
- vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>:FloatermHide<CR>")
- vim.keymap.set("t", "<Esc><Space>", "<Esc>")
- vim.keymap.set("t", "<C-S-t>", "<C-\\><C-n>")
- vim.keymap.set("t", "<S-Space>", "<Esc>")
- vim.keymap.set("t", "<A-up>", "<C-\\><C-n>:FloatermHide<CR>")
- vim.keymap.set("t", "<A-down>", "<C-\\><C-n>:FloatermNext<CR>")
- end
- }
- }
|