toggleterm.lua
return {
'akinsho/toggleterm.nvim',
version = '*',
opts = {
size = 15,
open_mapping = [[<c-\>]],
direction = 'horizontal',
shade_terminals = true,
},
keys = {
{ '<leader>tt', '<cmd>ToggleTerm<cr>' },
{ '<leader>tf', '<cmd>ToggleTerm direction=float<cr>' },
{ '<leader>tv', '<cmd>ToggleTerm direction=vertical<cr>' },
-- C/C++: сохранить, собрать текущий файл и запустить в терминале (с вводом через cin)
{
'<leader>rr',
function()
vim.cmd 'write'
local file = vim.fn.expand '%:p'
local out = vim.fn.expand '%:p:r'
local compiler = vim.bo.filetype == 'c' and 'clang -std=c17' or 'clang++ -std=c++20'
local cmd = string.format('%s -Wall -Wextra -g %s -o %s && %s', compiler, vim.fn.shellescape(file), vim.fn.shellescape(out), vim.fn.shellescape(out))
require('toggleterm').exec(cmd, 1, nil, vim.fn.expand '%:p:h')
end,
ft = { 'c', 'cpp' },
desc = '[R]un C/C++ file',
},
},
}