function inserttemplate(n,delsel) if (delsel) then local mode = vim.fn.mode() print("mode is " .. mode) local vis = vim.fn.getpos("v") sl = vis[2] - 1 sc = vis[3] - 1 local cpos = vim.api.nvim_win_get_cursor(0) el = cpos[1] - 1 ec = cpos[2] if ((el < sl) or ((el == sl) and (ec < sc))) then sl, sc, el, ec = el, ec, sl, sc end if (mode == "V") then vim.api.nvim_buf_set_lines(0,sl,el+1,false,{}) else vim.api.nvim_buf_set_text(0,sl,sc,el,ec,{}) end end local ft = vim.opt_local.filetype:get() local fn = vim.env.HOME .. '/.config/nvim/templates/' .. ft .. tostring(n) .. '.template' if (vim.fn.filereadable(fn) == 0) then vim.api.nvim_err_writeln(ft .. tostring(n) .. '.template not found') return end local file = io.open(fn,"r") local templatelines = {} for line in file:lines() do table.insert(templatelines, line); end file:close() vim.api.nvim_buf_set_lines(0,0,0,false,templatelines) vim.api.nvim_win_set_cursor(0,{1,0}) end return inserttemplate