From e80a93bc0de1a3d48348ccaac44c74b1b3aea074 Mon Sep 17 00:00:00 2001 From: Luminiferous Date: Fri, 4 Jul 2025 11:10:30 +0200 Subject: [PATCH] Added Code Folding and Terminal Toggle --- init.lua | 95 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 64 insertions(+), 31 deletions(-) diff --git a/init.lua b/init.lua index d4bb565..5f0e52a 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,10 @@ --- Editor Settings +-- Source configs with dependencies {{{ +--for _, file in ipairs(vim.fn.readdir(vim.fn.stdpath('config')..'/lua-heavy', [[v:val =~ '\.lua$']])) do +-- require(file:gsub('%.lua$', '')) +--end +-- }}} + +-- General Editor Settings {{{ vim.opt.number = true vim.opt.relativenumber = true vim.opt.cursorline = true @@ -11,7 +17,6 @@ vim.opt.path:append '**' vim.opt.path:append '.' vim.opt.wildmenu = true vim.opt.wrap = false -vim.opt.foldenable = false vim.opt.clipboard = 'unnamedplus' vim.opt.undofile = true vim.opt.ignorecase = true @@ -19,49 +24,77 @@ vim.opt.smartcase = true vim.opt.updatetime = 250 vim.opt.timeoutlen = 300 vim.opt.inccommand = 'split' +vim.opt.foldmethod = 'marker' +-- }}} - - --- Setup Netrw +-- Setup (Disable) Netrw {{{ +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 +--[[ vim.g.netrw_banner = 0 vim.g.netrw_sort_sequence = '[\\/]$' vim.g.netrw_sort_options = 'i' vim.g.netrw_silent = 1 ---[[ -vim.g.netrw_browse_split = 4 -vim.g.netrw_altv = 1 -vim.g.netrw_preview = 1 -vim.g.netrw_winsize = 20 -local mygroup = vim.api.nvim_create_augroup('loading_netrwPlugin', {clear = true}) -vim.api.nvim_create_autocmd({'VimEnter'}, { - pattern = {'*'}, - command = ':silent! Vexplore', - group = NetrwInit -}) ]] +-- }}} - - --- Added autocmd for automatic insertmode in Terminal Mode -vim.api.nvim_create_autocmd({ 'TermOpen' }, { - pattern = { 'term://*' }, - command = 'startinsert', -}) - - - --- WriteSudo and ReadSudo hacks +-- WriteSudo and ReadSudo hacks {{{ vim.api.nvim_create_user_command('WriteSudo', 'w !sudo tee %', {}) vim.api.nvim_create_user_command('ReadSudo', function(opts) vim.cmd('r !sudo cat ' .. opts['args']) end, { nargs = 1 }) +-- }}} - - --- Statusbar +-- Statusbar {{{ vim.opt.statusline = ' #%n %f %h%w%m%r %= %y %l:%c %p%% ' +-- }}} +-- Toggle Terminal Script {{{ +local te_buf = nil +local te_win_id = nil +local v = vim +local fun = v.fn +local cmd = v.api.nvim_command +local gotoid = fun.win_gotoid +local getid = fun.win_getid --- Keymaps +local function openTerminal() + if fun.bufexists(te_buf) ~= 1 then + cmd("au TermOpen * setlocal nonumber norelativenumber signcolumn=no") + cmd("sp | winc J | res 10 | te") + te_win_id = getid() + te_buf = fun.bufnr('%') + elseif gotoid(te_win_id) ~= 1 then + cmd("sb " .. te_buf .. "| winc J | res 10") + te_win_id = getid() + end + cmd("startinsert") +end + +local function hideTerminal() + if gotoid(te_win_id) == 1 then + cmd("hide") + end +end + +function ToggleTerminal() + if gotoid(te_win_id) == 1 then + hideTerminal() + else + openTerminal() + end +end +-- }}} + +-- Automatic insertmode in Terminal Mode {{{ +vim.api.nvim_create_autocmd({ 'TermOpen' }, { + pattern = { 'term://*' }, + command = 'startinsert', +}) +-- }}} + +-- Keymaps {{{ vim.api.nvim_set_keymap('n', 'f', ':find ', { noremap = true, silent = true }) +vim.keymap.set('n', 't', ToggleTerminal) +-- }}}